NtLockFile 함수(ntifs.h)
NtLockFile 루틴은 지정된 파일에 대한 바이트 범위 잠금을 요청합니다.
구문
__kernel_entry NTSYSCALLAPI NTSTATUS NtLockFile(
[in] HANDLE FileHandle,
[in, optional] HANDLE Event,
[in, optional] PIO_APC_ROUTINE ApcRoutine,
[in, optional] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PLARGE_INTEGER ByteOffset,
[in] PLARGE_INTEGER Length,
[in] ULONG Key,
[in] BOOLEAN FailImmediately,
[in] BOOLEAN ExclusiveLock
);
매개 변수
[in] FileHandle
바이트 범위 잠금이 요청되는 파일에 대한 핸들입니다.
[in, optional] Event
호출자가 만든 이벤트에 대한 핸들입니다. NULL이 아닌 경우 호출자는 작업이 성공할 때까지 대기 상태로 전환되며, 이때 이벤트가 Signaled 상태로 설정됩니다.
[in, optional] ApcRoutine
작업이 완료된 후 실행되는 호출자 제공 APC 루틴에 대한 포인터입니다. NULL일 수 있습니다.
[in, optional] ApcContext
APC 루틴에 대해 호출자가 지정한 컨텍스트에 대한 포인터입니다. 이 값은 APC 루틴이 실행될 때 전달됩니다. NULL일 수 있습니다.
[out] IoStatusBlock
최종 상태 포함하는 IO_STATUS_BLOCK 구조체에 대한 포인터입니다.
[in] ByteOffset
잠글 범위의 시작 바이트 오프셋을 지정하는 변수에 대한 포인터입니다.
[in] Length
잠글 범위의 길이(바이트)를 지정하는 변수에 대한 포인터입니다.
[in] Key
관련 잠금 그룹을 설명하는 데 사용되는 호출자 할당 값입니다. 이 값은 0으로 설정해야 합니다.
[in] FailImmediately
TRUE이면 파일을 잠글 수 없는 경우 즉시 를 반환합니다. FALSE이면 잠금 요청이 부여될 때까지 기다립니다.
[in] ExclusiveLock
TRUE인 경우 바이트 범위 잠금은 배타적입니다. 그렇지 않으면 공유 잠금입니다.
반환 값
NtLockFile 루틴은 STATUS_SUCCESS 또는 적절한 오류 NTSTATUS 값을 반환합니다. 가능한 NTSTATUS 값에는 다음이 포함됩니다.
반환 코드 | 설명 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 지정된 파일에 대한 바이트 범위 잠금을 부여할 리소스가 부족합니다. |
STATUS_LOCK_NOT_GRANTED | 지정된 파일에 대해 바이트 범위 잠금이 부여되지 않았습니다. |
설명
NtLockFile의 호출자는 IRQL = PASSIVE_LEVEL 및 특수 커널 APC 사용**에서 실행되어야 합니다.
참고
NtLockFile 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwLockFile" 대신 "NtLockFile"이라는 이름을 사용해야 합니다.
커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요**.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 |
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Ntifs.h, FltKernel.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL(설명 섹션 참조) |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs, PowerIrpDDis |