次の方法で共有


FSCTL_GET_WOF_VERSION 制御コード

FSCTL_GET_WOF_VERSION I/O 制御コード (IOCTL) は、特定のプロバイダーをサポートするために使用されるドライバーのバージョンを照会するために使用されます。

この操作を実行するには、次のパラメーターを指定して FltFsControlFile または ZwFsControlFile を呼び出します。

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

パラメーター

  • hDevice [in]: デバイスへのハンドル。 デバイス ハンドルを取得するには、CreateFile 関数または同様の API を呼び出します。

  • dwIoControlCode [in]: 操作の制御コード。 この操作には FSCTL_GET_WOF_VERSION を使用します。

  • lpInBuffer: 操作の入力バッファー。 これは、WOF_EXTERNAL_INFO 構造体へのポインターです。

  • nInBufferSize [in]: 入力バッファーのサイズ (バイト単位)。 これは sizeof(WOF_EXTERNAL_INFO) である必要があります。

  • lpOutBuffer [out]: 操作の出力バッファー。 これは、WOF_VERSION_INFO 構造体へのポインターです。

  • nOutBufferSize [in]: 出力バッファーのサイズ (バイト単位)。 これは sizeof(WOF_VERSION_INFO) にする必要があります。

  • lpBytesReturned [out]: 出力バッファーに格納されているデータのサイズ (バイト単位) を受け取る変数へのポインター。

    出力バッファーが小さすぎると呼び出しが失敗し、GetLastErrorERROR_INSUFFICIENT_BUFFER を返し、lpBytesReturned が 0 になります。

    lpOverlappedNULL である場合は、lpBytesReturnedNULL になることはありません。 操作で返される出力データがなく、lpOutBufferNULL になる場合でも、DeviceIoControl によって lpBytesReturned が使用されます。 このような操作の後、lpBytesReturned の値は意味がありません。

    lpOverlappedNULL である場合は、lpBytesReturnedNULL になる場合があります。 このパラメーターが NULL ではなく、かつ操作によってデータが返される場合、重複した操作が完了するまで lpBytesReturned は意味がありません。 返されたバイト数を取得するには、GetOverlappedResult を呼び出します。 hDevice パラメーターが I/O 完了ポートに関連付けられている場合は、GetQueuedCompletionStatus を呼び出すことによって、返されたバイト数を取得できます。

  • lpOverlapped [in]: OVERLAPPED 構造体へのポインター。

    FILE_FLAG_OVERLAPPED を指定しないで hDevice が開かれた場合、lpOverlapped は無視されます。

    hDeviceFILE_FLAG_OVERLAPPED フラグを指定して開かれた場合、操作は重複した (非同期) 操作として実行されます。 この場合、lpOverlapped は、イベント オブジェクトへのハンドルを含む有効な OVERLAPPED 構造体を指し示す必要があります。 そうでない場合、関数は予期しない方法で失敗します。

    重複する操作の場合は、DeviceIoControl が即座に返され、操作が完了するとイベント オブジェクトが通知されます。 それ以外の場合、操作が完了するかエラーが発生するまで関数は戻りません。

ステータスブロック

操作が正常に完了すると、DeviceIoControl は 0 以外の値を返します。

操作が失敗したか保留中の場合、DeviceIoControl は 0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

要件

要件タイプ 要件
サポートされている最小のクライアント Windows 10
ヘッダー Ntifs.h (Ntifs.h または Fltkernel.h を含む)