code de contrôle FSCTL_GET_WOF_VERSION

Le code de contrôle d’E /S FSCTL_GET_WOF_VERSION (IOCTL) est utilisé pour interroger la version du pilote utilisé pour prendre en charge un fournisseur particulier.

Pour effectuer cette opération, appelez FltFsControlFile ou ZwFsControlFile avec les paramètres suivants.

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        FSCTL_GET_WOF_VERSION, // dwIoControlCode
                    (LPDWORD)      lpInBuffer,      // input buffer
                    (DWORD)        nInBufferSize,   // size of input buffer
                    (LPDWORD)      lpOutBuffer,     // output buffer
                    (DWORD)        nOutBufferSize,  // size of output buffer
                    (LPDWORD)      lpBytesReturned, // number of bytes returned
                    (LPOVERLAPPED) lpOverlapped );  // OVERLAPPED structure

Paramètres

  • hDevice [in] : handle de l’appareil. Pour obtenir un handle d’appareil, appelez la fonction CreateFile ou une API similaire.

  • dwIoControlCode [in] : code de contrôle de l’opération. Utilisez FSCTL_GET_WOF_VERSION pour cette opération.

  • lpInBuffer : mémoire tampon d’entrée pour l’opération. Il s’agit d’un pointeur vers une structure WOF_EXTERNAL_INFO .

  • nInBufferSize [in] : taille, en octets, de la mémoire tampon d’entrée. Il doit s’agir de sizeof(WOF_EXTERNAL_INFO).

  • lpOutBuffer [out] : mémoire tampon de sortie pour l’opération. Il s’agit d’un pointeur vers une structure WOF_VERSION_INFO .

  • nOutBufferSize [in] : taille, en octets, de la mémoire tampon de sortie. Il doit s’agir de sizeof(WOF_VERSION_INFO).

  • lpBytesReturned [out] : pointeur vers une variable qui reçoit la taille des données stockées dans la mémoire tampon de sortie, en octets.

    Si la mémoire tampon de sortie est trop petite, l’appel échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFER et lpBytesReturned est égal à zéro.

    Si lpOverlapped a la valeur NULL, lpBytesReturned ne peut pas être NULL. Même quand une opération ne retourne aucune donnée de sortie et que lpOutBuffer a la valeur NULL, DeviceIoControl utilise lpBytesReturned. Après une telle opération, la valeur de lpBytesReturned n’a pas de sens.

    Si lpOverlapped n’a pas la valeur NULL, lpBytesReturned peut être NULL. Si ce paramètre n’est pas NULL et que l’opération retourne des données, lpBytesReturned n’a pas de sens tant que l’opération superposée n’est pas terminée. Pour récupérer le nombre d’octets retournés, appelez GetOverlappedResult. Si le paramètre hDevice est associé à un port d’achèvement d’E/S, vous pouvez récupérer le nombre d’octets retournés en appelant GetQueuedCompletionStatus.

  • lpOverlapped [in] : pointeur vers une structure CHEVAUCHEMENT .

    Si hDevice a été ouvert sans spécifier FILE_FLAG_OVERLAPPED, lpOverlapped est ignoré.

    Si hDevice a été ouvert avec l’indicateur FILE_FLAG_OVERLAPPED, l’opération est effectuée en tant qu’opération superposée (asynchrone). Dans ce cas, lpOverlapped doit pointer vers une structure OVERLAPPED valide qui contient le descripteur d’un objet d’événement. Sinon, la fonction échoue de façon imprévisible.

    Pour les opérations superposées, DeviceIoControl est immédiatement retourné, et l’objet d’événement est signalé une fois l’opération terminée. Sinon, la fonction n’est pas retournée tant que l’opération n’est pas terminée ou si une erreur se produit.

Bloc d’état

Si l’opération se termine correctement, DeviceIoControl retourne une valeur différente de zéro.

Si l’opération échoue ou est en attente, DeviceIoControl retourne zéro (0). Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Configuration requise

Type d’exigence Condition requise
Client minimal pris en charge Windows 10
En-tête Ntifs.h (inclure Ntifs.h ou Fltkernel.h)