FSCTL_GET_WOF_VERSION codice di controllo
Il FSCTL_GET_WOF_VERSION codice di controllo I/O (IOCTL) viene usato per eseguire una query sulla versione del driver usata per supportare un provider specifico.
Per eseguire questa operazione, chiamare FltFsControlFile o ZwFsControlFile con i parametri seguenti.
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
Parametri
hDevice [in]: handle per il dispositivo. Per ottenere un handle di dispositivo, chiamare la funzione CreateFile o un'API simile.
dwIoControlCode [in]: codice di controllo per l'operazione. Usare FSCTL_GET_WOF_VERSION per questa operazione.
lpInBuffer: buffer di input per l'operazione. Si tratta di un puntatore a una struttura WOF_EXTERNAL_INFO .
nInBufferSize [in]: dimensioni, in byte, del buffer di input. Deve essere sizeof(WOF_EXTERNAL_INFO).
lpOutBuffer [out]: buffer di output per l'operazione. Si tratta di un puntatore a una struttura WOF_VERSION_INFO .
nOutBufferSize [in]: dimensioni, in byte, del buffer di output. Deve essere sizeof(WOF_VERSION_INFO).
lpBytesReturned [out]: puntatore a una variabile che riceve le dimensioni dei dati archiviati nel buffer di output, in byte.
Se il buffer di output è troppo piccolo, la chiamata ha esito negativo, GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e lpBytesReturned è zero.
Se lpOverlapped è NULL, lpBytesReturned non può essere NULL. Anche quando un'operazione non restituisce dati di output e lpOutBuffer è NULL, DeviceIoControl usa lpBytesReturned. Dopo un'operazione di questo tipo, il valore di lpBytesReturned è privo di significato.
Se lpOverlapped non è NULL, lpBytesReturned può essere NULL. Se questo parametro non è NULL e l'operazione restituisce dati, lpBytesReturned non ha significato fino al completamento dell'operazione sovrapposta. Per recuperare il numero di byte restituiti, chiamare GetOverlappedResult. Se il parametro hDevice è associato a una porta di completamento I/O, è possibile recuperare il numero di byte restituiti chiamando GetQueuedCompletionStatus.
lpOverlapped [in]: puntatore a una struttura OVERLAPPED .
Se hDevice è stato aperto senza specificare FILE_FLAG_OVERLAPPED, lpOverlapped viene ignorato.
Se hDevice è stato aperto con il flag FILE_FLAG_OVERLAPPED , l'operazione viene eseguita come operazione sovrapposta (asincrona). In questo caso , lpOverlapped deve puntare a una struttura OVERLAPPED valida che contiene un handle a un oggetto evento. In caso contrario, la funzione ha esito negativo in modi imprevedibili.
Per le operazioni sovrapposte, DeviceIoControl restituisce immediatamente e l'oggetto evento viene segnalato al termine dell'operazione. In caso contrario, la funzione non restituisce finché l'operazione non è stata completata o si verifica un errore.
Blocco dello stato
Se l'operazione viene completata correttamente, DeviceIoControl restituisce un valore diverso da zero.
Se l'operazione ha esito negativo o è in sospeso, DeviceIoControl restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Requisiti
Tipo di requisito | Requisito |
---|---|
Client minimo supportato | Windows 10 |
Intestazione | Ntifs.h (include Ntifs.h o Fltkernel.h) |