KsReadFile 함수(ks.h)
KsReadFile 함수는 지정된 파일 개체에 대해 읽기를 수행합니다. 호출자가 FO_SYNCHRONOUS_IO 파일 개체에 대한 작업을 위해 파일에 대한 액세스를 직렬화하고 있다고 가정합니다. 함수는 가능하면 FastIoDispatch 를 사용하려고 시도하거나 디바이스 개체에 대한 읽기 요청을 생성합니다. 모든 관련 통계가 업데이트됩니다.
구문
KSDDKAPI NTSTATUS KsReadFile(
[in] PFILE_OBJECT FileObject,
[in, optional] PKEVENT Event,
[in, optional] PVOID PortContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[out] PVOID Buffer,
[in] ULONG Length,
[in, optional] ULONG Key,
[in] KPROCESSOR_MODE RequestorMode
);
매개 변수
[in] FileObject
읽기를 수행할 파일 개체를 지정합니다.
[in, optional] Event
필요에 따라 읽기에 사용할 이벤트를 포함합니다. 이벤트가 전달되지 않으면 호출이 동기 파일 개체에 있는 것으로 간주됩니다. 그렇지 않은 경우 호출자가 파일 개체의 이벤트를 기다리고 있거나 비동기적으로 완료될 수 있습니다. 파일이 동기 I/O용으로 열려 있는 경우 NULL이어야 합니다. 변수를 사용하는 경우 개체 관리자가 할당한 이벤트여야 합니다.
[in, optional] PortContext
필요에 따라 완료 포트에 대한 컨텍스트 정보를 포함합니다.
[out] IoStatusBlock
상태 정보가 반환될 주소를 지정합니다. 요청자 모드에 관계없이 항상 유효한 주소로 간주됩니다.
[out] Buffer
데이터를 읽을 버퍼를 지정합니다. 버퍼를 검색하고 잠가야 하는 경우 RequesterMode와 함께 예외 처리기가 사용됩니다.
[in] Length
전달된 버퍼의 크기를 지정합니다.
[in, optional] Key
필요에 따라 키를 포함하거나, 없는 경우 0을 포함합니다.
[in] RequestorMode
생성해야 하는 경우 읽기 IRP에 배치할 프로세서 모드를 나타냅니다. 또한 버퍼를 프로브하고 잠가야 하는 경우에 사용됩니다. 이 변수는 빠른 I/O 호출을 수행할 수 있는지 여부도 결정합니다. 요청자 모드가 KernelMode가 아니지만 이전 모드인 경우 빠른 I/O를 사용할 수 없습니다.
반환 값
KsReadFile 함수는 성공하면 STATUS_SUCCESS 반환하고, 작업이 보류 중이면 STATUS_PENDING, 실패하면 읽기 오류를 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |