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) |