FSCTL_GET_WOF_VERSION Steuerungscode
Der FSCTL_GET_WOF_VERSION E/A-Kontrollcode (IOCTL) wird verwendet, um die Version des Treibers abzufragen, der zur Unterstützung eines bestimmten Anbieters verwendet wird.
Um diesen Vorgang auszuführen, rufen Sie FltFsControlFile oder ZwFsControlFile mit den folgenden Parametern auf.
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
Parameter
hDevice [in]: Ein Handle für das Gerät. Rufen Sie zum Abrufen eines Gerätehandles die CreateFile-Funktion oder eine ähnliche API auf.
dwIoControlCode [in]: Der Steuerelementcode für den Vorgang. Verwenden Sie für diesen Vorgang FSCTL_GET_WOF_VERSION .
lpInBuffer: Der Eingabepuffer für den Vorgang. Dies ist ein Zeiger auf eine WOF_EXTERNAL_INFO-Struktur .
nInBufferSize [in]: Die Größe des Eingabepuffers in Bytes. Dies sollte sizeof(WOF_EXTERNAL_INFO) sein.
lpOutBuffer [out]: Der Ausgabepuffer für den Vorgang. Dies ist ein Zeiger auf eine WOF_VERSION_INFO-Struktur .
nOutBufferSize [in]: Die Größe des Ausgabepuffers in Bytes. Dies sollte sizeof(WOF_VERSION_INFO) sein.
lpBytesReturned [out]: Ein Zeiger auf eine Variable, die die Größe der im Ausgabepuffer gespeicherten Daten in Bytes empfängt.
Wenn der Ausgabepuffer zu klein ist, schlägt der Aufruf fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und lpBytesReturned ist null.
Wenn lpOverlappedNULL ist, kann lpBytesReturned nicht NULL sein. Auch wenn ein Vorgang keine Ausgabedaten zurückgibt und lpOutBufferNULL ist, verwendet DeviceIoControllpBytesReturned. Nach einem solchen Vorgang ist der Wert von lpBytesReturned bedeutungslos.
Wenn lpOverlappedNULL ist, kann lpBytesReturnedNULL sein. Wenn dieser Parameter nicht NULL ist und der Vorgang Daten zurückgibt, ist lpBytesReturned bedeutungslos, bis der überlappende Vorgang abgeschlossen ist. Rufen Sie GetOverlappedResult auf, um die Anzahl der zurückgegebenen Bytes abzurufen. Wenn der hDevice-Parameter einem E/A-Abschlussport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie GetQueuedCompletionStatus aufrufen.
lpOverlapped [in]: Ein Zeiger auf eine OVERLAPPED-Struktur .
Wenn hDevice geöffnet wurde, ohne FILE_FLAG_OVERLAPPED anzugeben, wird lpOverlapped ignoriert.
Wenn hDevice mit dem Flag FILE_FLAG_OVERLAPPED geöffnet wurde, wird der Vorgang als überlappender (asynchroner) Vorgang ausgeführt. In diesem Fall muss lpOverlapped auf eine gültige Struktur OVERLAPPED verweisen, die ein Handle für ein Ereignisobjekt enthält. Andernfalls schlägt die Funktion auf unvorhersehbare Weise fehl.
Bei überlappenden Vorgängen gibt DeviceIoControl sofort zurück, und dem Ereignisobjekt wird signalisiert, wenn der Vorgang abgeschlossen wurde. Andernfalls wird die Funktion erst zurückgegeben, wenn der Vorgang abgeschlossen wurde oder ein Fehler auftritt.
Statusblock
Wenn der Vorgang erfolgreich abgeschlossen wird, gibt DeviceIoControl einen Wert ungleich null zurück.
Wenn der Vorgang fehlschlägt oder aussteht, gibt DeviceIoControl null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Anforderungen
Anforderungstyp | Anforderung |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Header | Ntifs.h (schließen Sie Ntifs.h oder Fltkernel.h ein) |