Partager via


Méthode IWDFIoRequest2 ::GetSetInformationParameters (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode GetSetInformationParameters récupère les paramètres associés à une requête d’E/S de type WdfRequestSetInformation.

Syntaxe

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

Paramètres

[out, optional] pInformationClass

Pointeur vers une variable allouée par le pilote qui reçoit une valeur de type WDF_FILE_INFORMATION_CLASS. Ce pointeur est facultatif et peut être NULL.

[out, optional] pSizeInBytes

Pointeur vers une variable allouée par le pilote qui reçoit la taille, en octets, des informations de fichier. Ce pointeur est facultatif et peut être NULL.

Valeur de retour

None

Remarques

Votre pilote peut appeler GetSetInformationParameters pour obtenir les paramètres associés à une demande d’E/S, si le type de requête est WdfRequestSetInformation. Le paramètre pInformationClass identifie le type d’informations de fichier que le pilote doit définir, et le paramètre pSizeInBytes spécifie la taille de la mémoire tampon qui contient les informations. Le pilote peut appeler IWDFIoRequest2 ::RetrieveInputBuffer pour obtenir l’adresse de mémoire tampon.

Votre pilote doit vérifier que la taille de mémoire tampon spécifiée est suffisamment grande pour contenir les informations de fichier que le pilote doit définir.

Exemples

L’exemple de code suivant fait partie d’une fonction de rappel IQueueCallbackDefaultIoHandler ::OnDefaultIoHandler . Si la fonction de rappel reçoit une demande d’informations d’ensemble, elle récupère les paramètres de la demande. Si le pilote prend en charge le type d’informations spécifié, il copie les informations de la mémoire tampon d’entrée de la requête.

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:
...
}

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1,9
En-tête wudfddi.h (inclure Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFIoRequest2

IWDFIoRequest2 ::GetQueryInformationParameters