Obtaining a PCMCIA_INTERFACE_STANDARD Interface

This section describes how a driver can obtain a PCMCIA_INTERFACE_STANDARD interface for a PCMCIA memory card from the PCMCIA bus driver.

A driver obtains a PCMCIA_INTERFACE_STANDARD interface by creating and sending an IRP_MJ_PNP request that specifies a IRP_MN_QUERY_INTERFACE minor function code. The driver carries out the following operations:

  • Allocates and zero-fills a PCMCIA_INTERFACE_STANDARD Interface Memory Card Routines structure in the paged memory pool.

  • Creates an IRP for the query interface request and gets the next stack location for the new IRP.

  • Sets the following members in the new stack location:

    • The Parameters.QueryInterface.Interface member points to the driver-allocated PCMCIA_INTERFACE_STANDARD structure that was allocated by the driver.
    • The Parameters.QueryInterface.InterfaceType member specifies a standard PCMCIA interface by the GUID value GUID_PCMCIA_INTERFACE_STANDARD.
  • Sets a completion routine and sends the request down the driver stack.

If the request is successful, the PCMCIA bus driver fills in the PCMCIA_INTERFACE_STANDARD structure pointed to by Parameters.QueryInterface.Interface.

A driver must be running at IRQL < DISPATCH_LEVEL to send this request down the driver stack.