Função KsReadFile (ks.h)

A função KsReadFile executa uma leitura no objeto de arquivo especificado. Supõe-se que o chamador está serializando o acesso ao arquivo para operações em um objeto de arquivo FO_SYNCHRONOUS_IO. A função tenta usar FastIoDispatch , se possível, ou gera uma solicitação de leitura no objeto do dispositivo. Todas as estatísticas relevantes são atualizadas.

Sintaxe

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
);

Parâmetros

[in] FileObject

Especifica o objeto de arquivo no qual executar a leitura.

[in, optional] Event

Opcionalmente, contém o evento a ser usado na leitura. Se nenhum evento for passado, a chamada será considerada em um objeto de arquivo síncrono. Caso contrário, o chamador está aguardando o evento do objeto de arquivo ou pode ser concluído de forma assíncrona. Se o arquivo tiver sido aberto para E/S síncrona, ele deverá ser NULL. Se a variável for usada, ela deverá ser um evento alocado pelo gerenciador de objetos.

[in, optional] PortContext

Opcionalmente, contém informações de contexto para uma porta de conclusão.

[out] IoStatusBlock

Especifica o endereço em que as informações de status devem ser retornadas. Isso sempre é considerado um endereço válido, independentemente do modo solicitante.

[out] Buffer

Especifica o buffer no qual os dados serão lidos. Se o buffer precisar ser investigado e bloqueado, um manipulador de exceção será usado, juntamente com RequesterMode.

[in] Length

Especifica o tamanho do buffer passado.

[in, optional] Key

Opcionalmente, contém uma chave ou zero se nenhuma

[in] RequestorMode

Indica o modo de processador a ser colocado no IRP de leitura se precisar ser gerado. Além disso, ele será usado se o buffer precisar ser investigado e bloqueado. Essa variável também determina se uma chamada de E/S rápida pode ser executada. Se o modo solicitante não for KernelMode, mas o modo anterior fosse, a E/S rápida não poderá ser usada.

Retornar valor

A função KsReadFile retornará STATUS_SUCCESS se tiver êxito, STATUS_PENDING se a ação estiver pendente ou retornará um erro de leitura se não tiver êxito.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib