Condividi tramite


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

Vedi anche

IWDFIoRequest2

IWDFIoRequest2::GetQueryInformationParameters