IWDFIoRequest2 ::GetSetInformationParameters, méthode (wudfddi.h)
[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer avec UMDF.]
La méthode GetSetInformationParameters récupère les paramètres associés à une requête d’E/S 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 WDF_FILE_INFORMATION_CLASS-typée. 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
Aucun
Remarques
Votre pilote peut appeler GetSetInformationParameters pour obtenir les paramètres associés à une requête 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 la 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 fonction de rappel. Si la fonction de rappel reçoit une demande d’informations de jeu, 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 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:
...
}
Exigences
Exigence | Valeur |
---|---|
fin du support | Indisponible dans UMDF 2.0 et versions ultérieures. |
plateforme cible | Bureau |
version minimale de UMDF | 1.9 |
d’en-tête | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |