Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
NDIS appelle la fonction MiniportOidRequest d’un pilote MiniportOidRequest pour gérer une requête OID pour interroger ou définir des informations dans le pilote.
Syntaxe
MINIPORT_OID_REQUEST MiniportOidRequest;
NDIS_STATUS MiniportOidRequest(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNDIS_OID_REQUEST OidRequest
)
{...}
Paramètres
[in] MiniportAdapterContext
Handle vers une zone de contexte allouée par le pilote miniport dans sa fonction MiniportInitializeEx. Le pilote miniport utilise cette zone de contexte pour conserver les informations d’état d’un adaptateur miniport.
[in] OidRequest
Pointeur vers une structure NDIS_OID_REQUEST qui contient à la fois la mémoire tampon et le paquet de requête du pilote miniport à gérer. Selon la demande, le pilote retourne les informations demandées dans la structure fournie.
Valeur de retour
MiniportOidRequest pouvez retourner l’une des valeurs d’état suivantes :
| Retourner le code | Description |
|---|---|
|
Le pilote miniport a défini ou obtenu les données demandées. |
|
Le pilote miniport termine la requête de manière asynchrone. Une fois que le pilote miniport a terminé tout le traitement, il doit appeler le NdisMOidRequestComplete fonction pour informer NDIS que la requête est terminée. |
|
La requête, spécifiée à OidRequest, n’est pas valide ou n’est pas reconnue. |
|
La requête, spécifiée à OidRequest, est reconnue, mais pas prise en charge par le pilote miniport. |
|
La mémoire tampon, fournie à OidRequest, est trop petite pour contenir les données demandées. |
|
La valeur spécifiée dans le membre InformationBufferLength de la structure NDIS_OID_REQUEST à OidRequest est incorrecte pour le code OID_ XXX spécifié. |
|
Un ou plusieurs paramètres spécifiés pour la requête à OidRequest n’est pas valide. |
|
Après avoir appelé le MiniportDevicePnPEventNotify fonction pour indiquer une suppression surprise, NDIS appelle la fonction MiniportHaltEx du pilote. Si le pilote reçoit des demandes OID avant les appels NDIS MiniportHaltEx, il doit immédiatement effectuer ces demandes avec une valeur d’état de NDIS_STATUS_NOT_ACCEPTED. |
|
Le pilote miniport a arrêté le traitement de la requête. Par exemple, NDIS a appelé la fonction MiniportResetEx. |
|
Le pilote miniport fournit un état d’achèvement OID avec une indication d’état ultérieure. Un pilote miniport ne peut pas retourner NDIS_STATUS_INDICATION_REQUIRED sauf si l’OID particulier l’autorise. Pour déterminer si cet état est autorisé, consultez la page de référence OID.. Pour plus d’informations sur NDIS_STATUS_INDICATION_REQUIRED, consultez NDIS_OID_REQUEST et NDIS_STATUS_INDICATION. |
Remarques
Un pilote spécifie le point d’entrée MiniportOidRequest lorsqu’il appelle le fonction NdisMRegisterMiniportDriver.
NDIS appelle la fonction MiniportOidRequest en son propre nom ou au nom d’un pilote de protocole lié qui a appelé la fonction NdisOidRequest. Les pilotes miniport doivent examiner la demande fournie à OidRequest et effectuer l’action demandée. Pour plus d’informations sur les OID que les pilotes miniports gèrent, consultez NDIS OIDs.
Notez que NDIS ne valide pas le contenu spécifique à l’OID à OidRequest . Par conséquent, le pilote lui-même doit valider ce contenu. Si le pilote détermine que la valeur à définir est hors limites, elle doit échouer à la demande et retourner NDIS_STATUS_INVALID_DATA.
Si MiniportOidRequest retourne NDIS_STATUS_PENDING, NDIS n’appelle pas MiniportOidRequest avec une autre requête, pour l’adaptateur miniport spécifié à MiniportAdapterContext, jusqu’à ce que la demande en attente soit terminée.
exemples de
Pour définir une fonction MiniportOidRequest, vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction que vous définissez. Windows fournit un ensemble de types de fonctions pour les pilotes. La déclaration d’une fonction à l’aide des types de fonctions permet d'Analyse du code pour les pilotes, de vérificateur de pilotes statiques (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des pilotes pour le système d’exploitation Windows.Par exemple, pour définir une fonction MiniportOidRequest nommée « MyOidRequest », utilisez le type MINIPORT_OID_REQUEST comme indiqué dans cet exemple de code :
MINIPORT_OID_REQUEST MyOidRequest;
Ensuite, implémentez votre fonction comme suit :
_Use_decl_annotations_
NDIS_STATUS
MyOidRequest(
NDIS_HANDLE MiniportAdapterContext,
PNDIS_OID_REQUEST OidRequest
)
{...}
Le type de fonction MINIPORT_OID_REQUEST est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lorsque vous exécutez les outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction MINIPORT_OID_REQUEST dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes NDIS.
Pour plus d’informations sur Use_decl_annotations, consultez annoter le comportement de la fonction.
Exigences
| Exigence | Valeur |
|---|---|
| client minimum pris en charge | Prise en charge dans NDIS 6.0 et versions ultérieures. |
| plateforme cible | Windows |
| d’en-tête | ndis.h (include Ndis.h) |
| IRQL | PASSIVE_LEVEL |
| règles de conformité DDI | NdisOidComplete, NdisOidDoubleComplete, NdisOidDoubleRequest, NdisTimedOidComplete, WlanAssociation, WlanDisassociation, WlanTimedAssociation, WlanTimedConnectionRoaming, WlanTimedConnectRequest, WlanTimedLinkQuality, WlanTimedScan |