Compartir a través de


FSCTL_GET_WOF_VERSION código de control

El código de control de E/S (IOCTL) de FSCTL_GET_WOF_VERSION se usa para consultar la versión del controlador que se usa para admitir un proveedor determinado.

Para realizar esta operación, llame a FltFsControlFile o ZwFsControlFile con los parámetros siguientes.

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]: identificador del dispositivo. Para obtener un identificador de dispositivo, llame a la función CreateFile o a una API similar.

  • dwIoControlCode [in]: el código de control de la operación. Use FSCTL_GET_WOF_VERSION para esta operación.

  • lpInBuffer: el búfer de entrada para la operación. Se trata de un puntero a una estructura WOF_EXTERNAL_INFO .

  • nInBufferSize [in]: tamaño, en bytes, del búfer de entrada. Debe ser sizeof(WOF_EXTERNAL_INFO).

  • lpOutBuffer [out]: el búfer de salida de la operación. Se trata de un puntero a una estructura WOF_VERSION_INFO .

  • nOutBufferSize [in]: tamaño, en bytes, del búfer de salida. Debe ser sizeof(WOF_VERSION_INFO).

  • lpBytesReturned [out]: puntero a una variable que recibe el tamaño de los datos almacenados en el búfer de salida, en bytes.

    Si el búfer de salida es demasiado pequeño, se produce un error en la llamada, GetLastError devuelve ERROR_INSUFFICIENT_BUFFER y lpBytesReturned es cero.

    Si lpOverlapped es NULL, lpBytesReturned no puede ser NULL. Incluso cuando una operación no devuelve datos de salida y lpOutBuffer es NULL, DeviceIoControl usa lpBytesReturned. Después de esta operación, el valor de lpBytesReturned no tiene sentido.

    Si lpOverlapped no es NULL, lpBytesReturned puede ser NULL. Si este parámetro no es NULL y la operación devuelve datos, lpBytesReturned no tiene sentido hasta que se haya completado la operación superpuesta. Para recuperar el número de bytes devueltos, llame a GetOverlappedResult. Si el parámetro hDevice está asociado a un puerto de finalización de E/S, puede recuperar el número de bytes devueltos llamando a GetQueuedCompletionStatus.

  • lpOverlapped [in]: puntero a una estructura SUPERPUESTA .

    Si hDevice se abrió sin especificar FILE_FLAG_OVERLAPPED, se omite lpOverlapped.

    Si hDevice se abrió con la marca FILE_FLAG_OVERLAPPED, la operación se realiza como una operación superpuesta (asincrónica). En este caso, lpOverlapped debe apuntar a una estructura SUPERPUESTA válida que contenga un identificador para un objeto de evento. De lo contrario, se producirá un error en la función de formas impredecibles.

    En el caso de las operaciones superpuestas, se devuelve inmediatamente DeviceIoControl y se señala el objeto de evento cuando se ha completado la operación. De lo contrario, la función no se devuelve hasta que se haya completado la operación o hasta que se produzca un error.

Bloque de estado

Si la operación se completa correctamente, DeviceIoControl devuelve un valor distinto de cero.

Si se produce un error en la operación o está pendiente, DeviceIoControl devuelve cero. Para obtener información de error extendida, llame a GetLastError.

Requisitos

Tipo de requisito Requisito
Cliente mínimo compatible Windows 10
Encabezado Ntifs.h (incluya Ntifs.h o Fltkernel.h)