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