Metodo IWDFIoRequest2::GetQueryInformationParameters (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. Nessuna nuova funzionalità viene aggiunta 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 informazioni, vedere Introduzione con UMDF.]

Il metodo GetQueryInformationParameters recupera i parametri associati a una richiesta di I/O tipizzata WdfRequestQueryInformation.

Sintassi

void GetQueryInformationParameters(
  [out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
  [out, optional] SIZE_T                     *pSizeInBytes
);

Parametri

[out, optional] pInformationClass

Puntatore a una variabile allocata da driver che riceve un valore WDF_FILE_INFORMATION_CLASS tipizzato. 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 GetQueryInformationParameters per ottenere i parametri associati a una richiesta di I/O, se il tipo di richiesta è WdfRequestQueryInformation. Il parametro pInformationClass identifica il tipo di informazioni sul file che il driver deve fornire e il parametro pSizeInBytes specifica la dimensione del buffer che riceverà le informazioni. Il driver può chiamare IWDFIoRequest2::RetrieveOutputBuffer per ottenere l'indirizzo del buffer.

Il driver deve verificare che le dimensioni del buffer specificate siano sufficienti per ricevere le informazioni sul file richiesto.

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 di query, recupera i parametri della richiesta. Se il driver supporta il tipo specificato di informazioni, copia le informazioni nel buffer di output 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->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:
...
}

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

Vedi anche

IWDFIoRequest2

IWDFIoRequest2::GetSetInformationParameters