FSCTL_GET_WOF_VERSION código de controle

O FSCTL_GET_WOF_VERSION código de controle de E/S (IOCTL) é usado para consultar a versão do driver usada para dar suporte a um provedor específico.

Para executar essa operação, chame FltFsControlFile ou ZwFsControlFile com os parâmetros a seguir.

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

Parâmetros

  • hDevice [in]: um identificador para o dispositivo. Para obter um identificador de dispositivo, chame a função CreateFile ou a API semelhante.

  • dwIoControlCode [in]: o código de controle da operação. Use FSCTL_GET_WOF_VERSION para esta operação.

  • lpInBuffer: o buffer de entrada para a operação. Esse é um ponteiro para uma estrutura de WOF_EXTERNAL_INFO .

  • nInBufferSize [in]: o tamanho, em bytes, do buffer de entrada. Deve ser sizeof(WOF_EXTERNAL_INFO).

  • lpOutBuffer [out]: o buffer de saída para a operação. Esse é um ponteiro para uma estrutura de WOF_VERSION_INFO .

  • nOutBufferSize [in]: o tamanho, em bytes, do buffer de saída. Deve ser sizeof(WOF_VERSION_INFO).

  • lpBytesReturned [out]: um ponteiro para uma variável que recebe o tamanho dos dados armazenados no buffer de saída, em bytes.

    Se o buffer de saída for muito pequeno, a chamada falhará, GetLastError retornará ERROR_INSUFFICIENT_BUFFER e lpBytesReturned será zero.

    Se lpOverlapped for NULL, lpBytesReturned não poderá ser NULL. Mesmo quando uma operação não retorna dados de saída e lpOutBuffer for NULL, DeviceIoControl usará lpBytesReturned. Após essa operação, o valor de lpBytesReturned não terá sentido.

    Se lpOverlapped não for NULL, lpBytesReturned poderá ser NULL. Se esse parâmetro não for NULL e a operação retornar dados, lpBytesReturned não terá sentido até que a operação sobreposta seja concluída. Para recuperar o número de bytes retornados, chame GetOverlappedResult. Se o parâmetro hDevice estiver associado a uma porta de conclusão de E/S, você poderá recuperar o número de bytes retornados chamando GetQueuedCompletionStatus.

  • lpOverlapped [in]: um ponteiro para uma estrutura OVERLAPPED .

    Se hDevice tiver sido aberto sem especificar FILE_FLAG_OVERLAPPED, lpOverlapped será ignorado.

    Se hDevice tiver sido aberto com o sinalizador FILE_FLAG_OVERLAPPED, a operação será executada como uma operação sobreposta (assíncrona). Nesse caso, lpOverlapped deve apontar para uma estrutura OVERLAPPED válida que contenha um identificador para um objeto de evento. Caso contrário, a função falhará de maneiras imprevisíveis.

    Em operações sobrepostas, DeviceIoControl retorna imediatamente e o objeto do evento é sinalizado quando a operação é concluída. Caso contrário, a função não será retornada até que a operação seja concluída ou ocorra um erro.

Bloco de status

Se a operação for concluída com êxito, DeviceIoControl retornará um valor diferente de zero.

Se a operação falhar ou estiver pendente, DeviceIoControl retornará zero. Para obter informações de erro estendidas, chame GetLastError.

Requisitos

Tipo de Requisito Requisito
Cliente mínimo com suporte Windows 10
parâmetro Ntifs.h (inclua Ntifs.h ou Fltkernel.h)