Share via


Função NtDeviceIoControlFile (winternl.h)

Preterido. Cria descritores para os buffers fornecidos e passa os dados não tipados para o driver de dispositivo associado ao identificador de arquivo. NtDeviceIoControlFile é substituído por DeviceIoControl.

Sintaxe

__kernel_entry NTSTATUS NtDeviceIoControlFile(
  [in]  HANDLE           FileHandle,
  [in]  HANDLE           Event,
  [in]  PIO_APC_ROUTINE  ApcRoutine,
  [in]  PVOID            ApcContext,
  [out] PIO_STATUS_BLOCK IoStatusBlock,
  [in]  ULONG            IoControlCode,
  [in]  PVOID            InputBuffer,
  [in]  ULONG            InputBufferLength,
  [out] PVOID            OutputBuffer,
  [in]  ULONG            OutputBufferLength
);

Parâmetros

[in] FileHandle

Abra o identificador de arquivo para o arquivo ou dispositivo ao qual as informações de controle devem ser fornecidas.

[in] Event

Um identificador para um evento a ser definido como o signaled estado quando a operação for concluída. Este parâmetro pode ser NULL.

[in] ApcRoutine

Procedimento a ser invocado após a conclusão da operação. Este parâmetro pode ser NULL. Para obter mais informações sobre APCs (chamadas de procedimento assíncrono), consulte Chamadas de procedimento assíncrono.

[in] ApcContext

Um ponteiro a ser passado para a ApcRoutine quando a operação for concluída. Esse parâmetro será necessário se uma ApcRoutine for especificada.

[out] IoStatusBlock

Variável para receber a status final de conclusão e informações sobre a operação. Chamadas de serviço que retornam informações retornam o comprimento dos dados gravados no buffer de saída no campo Informações dessa variável.

[in] IoControlCode

Código que indica qual função de controle de E/S do dispositivo deve ser executada.

[in] InputBuffer

Um ponteiro para um buffer que contém as informações a serem fornecidas ao dispositivo de destino. Este parâmetro pode ser NULL. Essas informações dependem do dispositivo.

[in] InputBufferLength

Comprimento do InputBuffer em bytes. Se o buffer não for fornecido, esse valor será ignorado.

[out] OutputBuffer

Um ponteiro para um buffer que deve receber as informações de retorno dependentes do dispositivo de destino. Este parâmetro pode ser NULL.

[in] OutputBufferLength

Comprimento do OutputBuffer em bytes. Se o buffer não for fornecido, esse valor será ignorado.

Retornar valor

Os vários valores NTSTATUS são definidos em NTSTATUS. H, que é distribuído com o DDK do Windows.

Código de retorno Descrição
STATUS_SUCCESS
A operação de controle foi enfileirada corretamente no sistema de E/S. Depois que a operação for concluída, o status poderá ser determinado examinando o campo Status do bloco status de E/S.

Comentários

O serviço NtDeviceIoControlFile é uma interface dependente do dispositivo que estende o controle que os aplicativos têm sobre vários dispositivos dentro do sistema. Essa API fornece uma exibição consistente dos dados de entrada e saída para o sistema enquanto ainda fornece ao aplicativo e ao driver um método dependente do dispositivo de especificar uma interface de comunicação.

O tipo de acesso ao arquivo de que o chamador precisa depende da operação real que está sendo executada.

Depois que o serviço for concluído, o Evento, se especificado, será definido como o signaled estado . Se nenhum parâmetro Event for especificado, o objeto de arquivo especificado pelo FileHandle será definido como o signaled estado . Se uma ApcRoutine for especificada, ela será invocada com o ApcContext e o IoStatusBlock como seus argumentos.

Como não há biblioteca de importação para essa função, você deve usar GetProcAddress.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winternl.h
Biblioteca ntdll.lib
DLL ntdll.dll

Confira também

Chamadas de procedimento assíncronas