IWDFDevice ::CreateRequest, 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 CreateRequest crée un objet de requête non mis en forme.
Syntaxe
HRESULT CreateRequest(
[in, optional] IUnknown *pCallbackInterface,
[in, optional] IWDFObject *pParentObject,
[out] IWDFIoRequest **ppRequest
);
Paramètres
[in, optional] pCallbackInterface
Pointeur vers l’interface IUnknown utilisée par l’infrastructure pour déterminer les fonctions de rappel d’événements liées à l’objet auxquelles le pilote s’abonne sur l’objet de requête nouvellement créé. Ce paramètre est facultatif. Le pilote peut passer NULL si le pilote n’a pas besoin de notification. Si le pilote transmet un pointeur valide, l’infrastructure appelle QueryInterface sur l’interface IUnknown pour l’interface IObjectCleanup. Si l’infrastructure obtient l’interface IObjectCleanup du pilote, l’infrastructure peut ensuite appeler la méthode IObjectCleanup ::OnCleanup du pilote pour informer le pilote que l’objet de requête est nettoyé.
[in, optional] pParentObject
Pointeur vers l’interface IWDFObject pour l’objet parent de l’objet de requête d’E/S créé. Si NULL, l’objet d’appareil devient le parent par défaut.
[out] ppRequest
Pointeur vers une variable qui reçoit un pointeur vers l’interface IWDFIoRequest pour le nouvel objet de requête.
Valeur de retour
CreateRequest retourne S_OK si l’opération réussit. Sinon, cette méthode retourne l’un des codes d’erreur définis dans Winerror.h.
Remarques
Avant qu’un pilote UMDF utilise l’objet de requête qui CreateRequest crée, le pilote doit mettre en forme l’objet de requête. Pour mettre en forme un objet de requête d’E/S, le pilote appelle l’une des méthodes suivantes :
Si NULL est spécifié dans le paramètre pParentObject, l’objet d’appareil devient l’objet parent par défaut de l’objet de requête d’E/S nouvellement créé. Si un pilote UMDF crée un objet de requête d’E/S que le pilote utilise avec un objet de file d’attente d’E/S spécifique ou un autre objet de requête d’E/S, le pilote doit définir cet objet de file d’attente ou de requête comme objet parent de l’objet de requête créé. Lorsque l’objet parent est supprimé, l’objet de demande créé est supprimé.
Exemples
L’exemple de code suivant montre comment créer une demande, mettre en forme la demande de lecture et envoyer la demande.
HRESULT
CUmdfHidDevice::SendInterruptPipeRead(
VOID
)
{
CComPtr<IWDFDevice> wdfDevice;
HRESULT hr;
IWDFFile *pTargetFile = NULL;
// Allocate a new WDF request to send on the interrupt pipe.
GetWdfDevice(&wdfDevice);
hr = wdfDevice->CreateRequest(
static_cast<IObjectCleanup*>(this),
wdfDevice,
&m_InterruptReadRequest
);
if (SUCCEEDED(hr))
{
m_InterruptPipe->GetTargetFile(&pTargetFile);
hr = m_InterruptPipe->FormatRequestForRead(
m_InterruptReadRequest,
pTargetFile,
m_ReadMemory,
NULL,
NULL
);
}
// Issue the read to the pipe.
if (SUCCEEDED(hr))
{
hr = m_InterruptReadRequest->Send(m_InterruptPipe, 0, 0);
}
return hr;
}
Exigences
Exigence | Valeur |
---|---|
fin du support | Indisponible dans UMDF 2.0 et versions ultérieures. |
plateforme cible | Bureau |
version minimale de UMDF | 1.5 |
d’en-tête | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |
Voir aussi
IWDFIoTarget ::FormatRequestForIoctl
IWDFIoTarget ::FormatRequestForRead