Partager via


Fonction NtDeviceIoControlFile (winternl.h)

Action déconseillée. Génère des descripteurs pour la ou les mémoires tampons fournies et transmet les données non typées au pilote de périphérique associé au handle de fichier. NtDeviceIoControlFile est remplacé par DeviceIoControl.

Syntaxe

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

Paramètres

[in] FileHandle

Ouvrez le handle de fichier sur le fichier ou l’appareil auquel les informations de contrôle doivent être fournies.

[in] Event

Handle d’un événement à définir sur l’état signaled à la fin de l’opération. Ce paramètre peut être NULL.

[in] ApcRoutine

Procédure à appeler une fois l’opération terminée. Ce paramètre peut être NULL. Pour plus d’informations sur les appels de procédure asynchrone (API), consultez Appels de procédure asynchrone.

[in] ApcContext

Pointeur à passer à ApcRoutine une fois l’opération terminée. Ce paramètre est obligatoire si un ApcRoutine est spécifié.

[out] IoStatusBlock

Variable pour recevoir l’achèvement final status et des informations sur l’opération. Les appels de service qui retournent des informations retournent la longueur des données écrites dans la mémoire tampon de sortie dans le champ Informations de cette variable.

[in] IoControlCode

Code qui indique quelle fonction de contrôle d’E/S d’appareil doit être exécutée.

[in] InputBuffer

Pointeur vers une mémoire tampon qui contient les informations à donner à l’appareil cible. Ce paramètre peut être NULL. Ces informations dépendent de l’appareil.

[in] InputBufferLength

Longueur de l’objet InputBuffer en octets. Si la mémoire tampon n’est pas fournie, cette valeur est ignorée.

[out] OutputBuffer

Pointeur vers une mémoire tampon qui doit recevoir les informations de retour dépendantes de l’appareil cible. Ce paramètre peut être NULL.

[in] OutputBufferLength

Longueur de l’objet OutputBuffer en octets. Si la mémoire tampon n’est pas fournie, cette valeur est ignorée.

Valeur retournée

Les différentes valeurs NTSTATUS sont définies dans NTSTATUS. H, qui est distribué avec le DDK Windows.

Code de retour Description
STATUS_SUCCESS
L’opération de contrôle a été correctement mise en file d’attente vers le système d’E/S. Une fois l’opération terminée, le status peut être déterminé en examinant le champ État du bloc de status d’E/S.

Remarques

Le service NtDeviceIoControlFile est une interface dépendante de l’appareil qui étend le contrôle des applications sur différents appareils au sein du système. Cette API fournit une vue cohérente des données d’entrée et de sortie du système tout en fournissant à l’application et au pilote une méthode dépendante du périphérique pour spécifier une interface de communication.

Le type d’accès au fichier dont l’appelant a besoin dépend de l’opération réelle en cours d’exécution.

Une fois le service terminé, l’événement, s’il est spécifié, est défini sur l’état signaled . Si aucun paramètre Event n’est spécifié, l’objet file spécifié par fileHandle est défini sur l’état signaled . Si un ApcRoutine est spécifié, il est appelé avec ApcContext et IoStatusBlock comme arguments.

Étant donné qu’il n’existe aucune bibliothèque d’importation pour cette fonction, vous devez utiliser GetProcAddress.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winternl.h
Bibliothèque ntdll.lib
DLL ntdll.dll

Voir aussi

Appels de procédure asynchrones