Méthode IWDFIoRequest2 ::GetQueryInformationParameters (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 GetQueryInformationParameters récupère les paramètres associés à une requête d’E/S de type WdfRequestQueryInformation.
Syntaxe
void GetQueryInformationParameters(
[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 GetQueryInformationParameters pour obtenir les paramètres associés à une demande d’E/S, si le type de requête est WdfRequestQueryInformation. Le paramètre pInformationClass identifie le type d’informations de fichier que le pilote doit fournir, et le paramètre pSizeInBytes spécifie la taille de la mémoire tampon qui recevra les informations. Le pilote peut appeler IWDFIoRequest2 ::RetrieveOutputBuffer 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 recevoir les informations de fichier demandées.
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 de requête, elle récupère les paramètres de la requête. Si le pilote prend en charge le type d’informations spécifié, il copie les informations dans la mémoire tampon de sortie 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->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:
...
}
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 |