다음을 통해 공유


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