Manipulando solicitações de OID em um adaptador de miniporta
O NDIS chama a função MiniportOidRequest de um driver de miniport para enviar uma solicitação OID para consultar ou definir informações no driver. O NDIS chama a função MiniportOidRequest em seu próprio nome ou em nome de um driver sobressociente que chamou a função NdisOidRequest ou NdisFOidRequest .
O NDIS passa MiniportOidRequest um ponteiro para uma estrutura NDIS_OID_REQUEST que contém as informações de solicitação. A estrutura de solicitação contém um identificador OID_Xxx que indica o tipo de solicitação e outros membros para definir os dados da solicitação.
O membro Timeout especifica um tempo limite, em segundos, para a solicitação. O NDIS pode redefinir o driver ou cancelar a solicitação se o tempo limite expirar antes que o driver conclua a solicitação.
O membro RequestId especifica um identificador opcional para a solicitação. Os drivers de miniport podem definir o membro RequestId de uma indicação status para o valor obtido do membro RequestId de uma solicitação OID associada. Normalmente, os drivers de miniporto podem ignorar esse membro. Se um driver precisar definir esse membro, a página de referência para o OID específico fornecerá os valores necessários. Para obter mais informações sobre status indicações, consulte Indicações de status do adaptador.
Um driver de miniporta que manipula com êxito uma solicitação de conjunto de OID deve definir o membro SupportedRevision na estrutura NDIS_OID_REQUEST após o retorno da solicitação de conjunto de OID. O membro SupportedRevision notifica o iniciador da solicitação da revisão com suporte do driver. Por exemplo, um driver de miniporto pode criar uma estrutura Xxx_REVISION_2, fornecer valores apropriados para uma estrutura Xxx_REVISION_1 e preencher o restante da estrutura com zeros. O driver de miniporta relataria Xxx_REVISION_1 no membro SupportedRevision . Nesse caso, um driver de protocolo que pode dar suporte a um Xxx_REVISION_2 usará Xxx_REVISION_1 informações compatíveis com o driver de miniporto. Para obter mais informações sobre informações de versão em estruturas NDIS, consulte Especificando informações de versão do NDIS.
Um driver de miniporta pode concluir uma solicitação OID de forma síncrona retornando um status de êxito ou falha.
Um driver de miniporta pode concluir uma solicitação OID de forma assíncrona retornando NDIS_STATUS_PENDING. Nesse caso, o driver de miniporto deve chamar a função NdisMOidRequestComplete para concluir a operação.
Se MiniportOidRequest retornar NDIS_STATUS_PENDING, o NDIS não chamará MiniportOidRequest com outra solicitação para o adaptador até que a solicitação pendente seja concluída.
O NDIS pode chamar a função MiniportCancelOidRequest de um driver de miniport para cancelar uma solicitação OID.