Share via


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)