다음을 통해 공유


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