PROTOCOL_DIRECT_OID_REQUEST_COMPLETE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ndis.h

PROTOCOL_DIRECT_OID_REQUEST_COMPLETE ProtocolDirectOidRequestComplete;

VOID ProtocolDirectOidRequestComplete(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PNDIS_OID_REQUEST OidRequest,
  [in] NDIS_STATUS Status
)
{...}
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nc-ndis-protocol_direct_oid_request_complete)

PROTOCOL_DIRECT_OID_REQUEST_COMPLETE callback function

Description

The ProtocolDirectOidRequestComplete function completes the processing of a protocol driver-initiated direct OID request for which the NdisDirectOidRequest function returned NDIS_STATUS_PENDING.

Note You must declare the function by using the PROTOCOL_DIRECT_OID_REQUEST_COMPLETE type. For more information, see the following Examples section.

Parameters

ProtocolBindingContext [in]

A handle to a protocol driver-allocated context area in which the protocol driver maintains per-binding run-time state. The driver supplied this handle when it called the NdisOpenAdapterEx function.

OidRequest [in]

A pointer to the protocol driver-supplied NDIS_OID_REQUEST structure that was previously passed to the NdisDirectOidRequest function.

Status [in]

The final status of the request. The underlying driver or NDIS determines this final status. This parameter determines what ProtocolDirectOidRequestComplete does with the information at OidRequest.

Remarks

ProtocolDirectOidRequestComplete is an optional function. If a protocol driver does not use direct OID requests, it can set the entry point for this function to NULL when it calls the NdisRegisterProtocolDriver function.

ProtocolDirectOidRequestComplete uses the input value of the Status parameter as follows:

ProtocolDirectOidRequestComplete can be called before the protocol driver has had time to inspect the status code that NdisDirectOidRequest returns at Status.

NDIS calls ProtocolDirectOidRequestComplete at IRQL <= DISPATCH_LEVEL.

Examples

To define a ProtocolDirectOidRequestComplete function, you must first provide a function declaration that identifies the type of function you're defining. Windows provides a set of function types for drivers. Declaring a function using the function types helps Code Analysis for Drivers, Static Driver Verifier (SDV), and other verification tools find errors, and it's a requirement for writing drivers for the Windows operating system.

For example, to define a ProtocolDirectOidRequestComplete function that is named "MyDirectOidRequestComplete", use the PROTOCOL_DIRECT_OID_REQUEST_COMPLETE type as shown in this code example:

PROTOCOL_DIRECT_OID_REQUEST_COMPLETE MyDirectOidRequestComplete;

Then, implement your function as follows:

_Use_decl_annotations_
VOID
 MyDirectOidRequestComplete(
    NDIS_HANDLE  ProtocolBindingContext,
    PNDIS_OID_REQUEST  OidRequest,
    NDIS_STATUS  Status
    )
  {...}

The PROTOCOL_DIRECT_OID_REQUEST_COMPLETE function type is defined in the Ndis.h header file. To more accurately identify errors when you run the code analysis tools, be sure to add the _Use_decl_annotations_ annotation to your function definition. The _Use_decl_annotations_ annotation ensures that the annotations that are applied to the PROTOCOL_DIRECT_OID_REQUEST_COMPLETE function type in the header file are used. For more information about the requirements for function declarations, see Declaring Functions by Using Function Role Types for NDIS Drivers.

For information about _Use_decl_annotations_, see Annotating Function Behavior.

See also

NDIS_OID_REQUEST

NdisDirectOidRequest

NdisMDirectOidRequestComplete

NdisOpenAdapterEx

NdisRegisterProtocolDriver

OID_GEN_MAXIMUM_SEND_PACKETS