ZwLockFile 함수(ntifs.h)
ZwLockFile 루틴은 지정된 파일에 대한 바이트 범위 잠금을 요청합니다.
구문
NTSYSAPI NTSTATUS ZwLockFile(
[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인 경우 바이트 범위 잠금은 배타적입니다. 그렇지 않으면 공유 잠금입니다.
반환 값
ZwLockFile 루틴은 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 오류 NTSTATUS 값을 반환합니다.
오류 코드 | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 지정된 파일에 대한 바이트 범위 잠금을 부여할 리소스가 부족합니다. |
STATUS_LOCK_NOT_GRANTED | 지정된 파일에 대해 바이트 범위 잠금이 부여되지 않았습니다. |
설명
ZwLockFile의 호출자는 IRQL = PASSIVE_LEVEL 및 특수 커널 APC를 사용하도록 설정된 상태에서 실행되어야 합니다.
참고
ZwLockFile 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "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(storport), PowerIrpDDis(wdm) |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기