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