Metodo IWDFIoRequest2::GetSetInformationParameters (wudfddi.h)
[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre info, vedi Introduzione con UMDF.]
Il metodo GetSetInformationParameters recupera i parametri associati a una richiesta di I/O tipizzata WdfRequestSetInformation.
Sintassi
void GetSetInformationParameters(
[out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
[out, optional] SIZE_T *pSizeInBytes
);
Parametri
[out, optional] pInformationClass
Puntatore a una variabile allocata dal driver che riceve un valore tipizzato WDF_FILE_INFORMATION_CLASS. Questo puntatore è facoltativo e può essere NULL.
[out, optional] pSizeInBytes
Puntatore a una variabile allocata dal driver che riceve le dimensioni, in byte, delle informazioni sul file. Questo puntatore è facoltativo e può essere NULL.
Valore restituito
nessuno
Osservazioni
Il driver può chiamare GetSetInformationParameters per ottenere i parametri associati a una richiesta di I/O, se il tipo di richiesta è WdfRequestSetInformation. Il parametro pInformationClass identifica il tipo di informazioni sul file che il driver deve impostare e il parametro pSizeInBytes specifica le dimensioni del buffer che contiene le informazioni. Il driver può chiamare IWDFIoRequest2::RetrieveInputBuffer per ottenere l'indirizzo del buffer.
Il driver deve verificare che le dimensioni del buffer specificate siano sufficienti per contenere le informazioni sul file che il driver deve impostare.
Esempio
L'esempio di codice seguente fa parte di una funzione di callback IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Se la funzione di callback riceve una richiesta di informazioni sul set, recupera i parametri della richiesta. Se il driver supporta il tipo specificato di informazioni, copia le informazioni dal buffer di input della richiesta.
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->GetSetInformationParameters(&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 input buffer.
//
hr = r2->RetrieveInputBuffer(sizeof(FILE_BASIC_INFORMATION),
(PVOID*) &buffer,
&bufferCb);
if (SUCCEEDED(hr))
{
//
// Copy file information from input buffer.
//
CopyMemory(&g_FileInfo,
buffer,
sizeof(FILE_BASIC_INFORMATION));
}
...
}
...
exit:
...
}
Requisiti
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Versione UMDF minima | 1,9 |
Intestazione | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |