IWDFIoRequest2::GetQueryInformationParameters-Methode (wudfddi.h)
[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]
Die GetQueryInformationParameters-Methode ruft Parameter ab, die einer WdfRequestQueryInformation-typisierten E/A-Anforderung zugeordnet sind.
Syntax
void GetQueryInformationParameters(
[out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
[out, optional] SIZE_T *pSizeInBytes
);
Parameter
[out, optional] pInformationClass
Ein Zeiger auf eine vom Treiber zugewiesene Variable, die einen WDF_FILE_INFORMATION_CLASS typisierten Wert empfängt. Dieser Zeiger ist optional und kann NULL sein.
[out, optional] pSizeInBytes
Ein Zeiger auf eine vom Treiber zugewiesene Variable, die die Größe der Dateiinformationen in Bytes empfängt. Dieser Zeiger ist optional und kann NULL sein.
Rückgabewert
Keine
Bemerkungen
Ihr Treiber kann GetQueryInformationParameters aufrufen, um die Parameter abzurufen, die einer E/A-Anforderung zugeordnet sind, wenn der Anforderungstyp WdfRequestQueryInformation ist. Der pInformationClass-Parameter gibt den Typ der Dateiinformationen an, die der Treiber bereitstellen soll, und der Parameter pSizeInBytes gibt die Größe des Puffers an, der die Informationen empfängt. Der Treiber kann IWDFIoRequest2::RetrieveOutputBuffer aufrufen, um die Pufferadresse abzurufen.
Ihr Treiber muss überprüfen, ob die angegebene Puffergröße groß genug ist, um die angeforderten Dateiinformationen zu erhalten.
Beispiele
Das folgende Codebeispiel ist Teil einer IQueueCallbackDefaultIoHandler::OnDefaultIoHandler-Rückruffunktion . Wenn die Rückruffunktion eine Abfrageinformationsanforderung empfängt, ruft sie die Parameter der Anforderung ab. Wenn der Treiber den angegebenen Informationstyp unterstützt, kopiert er die Informationen in den Ausgabepuffer der Anforderung.
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
WDF_FILE_INFORMATION_CLASS infoClass;
SIZE_T bufSize;
PFILE_BASIC_INFORMATION buffer;
if (WdfRequestQueryInformation==pRequest->GetType())
{
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pRequest;
//
// Get the I/O request's parameters.
//
r2->GetQueryInformationParameters(&infoClass,
&bufSize);
//
// This driver supports only FileBasicInformation.
//
if (infoClass != FileBasicInformation)
{
hr = HRESULT_FROM_NT(STATUS_NOT_SUPPORTED);
goto exit;
}
//
// Validate buffer size.
//
if (bufferCb != sizeof(FILE_BASIC_INFORMATION))
{
hr = HRESULT_FROM_NT(STATUS_BUFFER_TOO_SMALL);
goto exit;
}
//
// Get output buffer.
//
hr = r2->RetrieveOutputBuffer(sizeof(FILE_BASIC_INFORMATION),
(PVOID*) &buffer,
&bufferCb);
if (SUCCEEDED(hr))
{
//
// Copy file information to output buffer.
//
CopyMemory(buffer,
&g_FileInfo,
sizeof(FILE_BASIC_INFORMATION));
r2->SetInformation(sizeof(FILE_BASIC_INFORMATION));
}
...
}
...
exit:
...
}
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.9 |
Kopfzeile | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |