Compartir a través de


Función NtDeviceIoControlFile (winternl.h)

Desusado. Compila descriptores para los búferes proporcionados y pasa los datos sin tipo al controlador de dispositivo asociado al identificador de archivo. NtDeviceIoControlFile se sustituye por DeviceIoControl.

Sintaxis

__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 el identificador de archivo en el archivo o dispositivo al que se debe proporcionar la información del control.

[in] Event

Identificador de un evento que se va a establecer en el signaled estado cuando se completa la operación. Este parámetro puede ser NULL.

[in] ApcRoutine

Procedimiento que se va a invocar una vez completada la operación. Este parámetro puede ser NULL. Para obtener más información sobre las llamadas a procedimientos asincrónicos (APCs), consulte Llamadas a procedimientos asincrónicos.

[in] ApcContext

Puntero que se va a pasar a ApcRoutine cuando se completa la operación. Este parámetro es necesario si se especifica una instancia de ApcRoutine .

[out] IoStatusBlock

Variable para recibir el estado de finalización final e información sobre la operación. Las llamadas de servicio que devuelven información devuelven la longitud de los datos que se escriben en el búfer de salida en el campo Información de esta variable.

[in] IoControlCode

Código que indica qué función de control de E/S de dispositivo se va a ejecutar.

[in] InputBuffer

Puntero a un búfer que contiene la información que se va a proporcionar al dispositivo de destino. Este parámetro puede ser NULL. Esta información depende del dispositivo.

[in] InputBufferLength

Longitud de InputBuffer en bytes. Si no se proporciona el búfer, se omite este valor.

[out] OutputBuffer

Puntero a un búfer que va a recibir la información de devolución dependiente del dispositivo del dispositivo de destino. Este parámetro puede ser NULL.

[in] OutputBufferLength

Longitud de OutputBuffer en bytes. Si no se proporciona el búfer, se omite este valor.

Valor devuelto

Los distintos valores NTSTATUS se definen en NTSTATUS. H, que se distribuye con el DDK de Windows.

Código devuelto Descripción
STATUS_SUCCESS
La operación de control se puso en cola correctamente en el sistema de E/S. Una vez completada la operación, el estado se puede determinar examinando el campo Estado del bloque de estado de E/S.

Comentarios

El servicio NtDeviceIoControlFile es una interfaz dependiente del dispositivo que extiende el control que las aplicaciones tienen sobre varios dispositivos del sistema. Esta API proporciona una vista coherente de los datos de entrada y salida al sistema, a la vez que proporciona la aplicación y el controlador un método dependiente del dispositivo para especificar una interfaz de comunicaciones.

El tipo de acceso al archivo que necesita el autor de la llamada depende de la operación real que se realiza.

Una vez completado el servicio, el evento, si se especifica, se establece en el signaled estado . Si no se especifica ningún parámetro Event , el objeto de archivo especificado por FileHandle se establece en el signaled estado . Si se especifica una instancia de ApcRoutine , se invoca con ApcContext y IoStatusBlock como argumentos.

Dado que no hay ninguna biblioteca de importación para esta función, debe usar GetProcAddress.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winternl.h
Library ntdll.lib
Archivo DLL ntdll.dll

Consulte también

Llamadas a procedimientos asincrónicos