PURPOSE
Detects PCMCIA devices attached to PCMCIA sockets, which conform
to the input criteria (manufacturer ID and/or card ID), and returns the number
and location (bus, socket and function) of the detected devices.
PROTOTYPE
DWORD WD_PcmciaScanCards(
HANDLE hWD,
WD_PCMCIA_SCAN_CARDS *pPcmciaScan);
PARAMETERS
| Name | Type | Input/Output |
|---|---|---|
| HANDLE | Input | |
| WD_PCMCIA_SCAN_CARDS* | ||
| WD_PCMCIA_ID | ||
| WORD | Input | |
| WORD | Input | |
| DWORD | Output | |
| WD_PCMCIA_ID[WD_PCMCIA_CARDS] | ||
| DWORD | Output | |
| DWORD | Output | |
| WD_PCMCIA_SLOT[WD_PCMCIA_CARDS] | ||
| BYTE | Output | |
| BYTE | Output | |
| BYTE | Output | |
| BYTE | N/A | |
| DWORD | Input |
DESCRIPTION
| Name | Description |
|---|---|
| hWD | Handle to WinDriver's kernel-mode driver as received from WD_Open() [5.2] |
| pPcmciaScan | Pointer to a PCMCIA bus scan information structure: |
| PCMCIA card ID information structure: | |
| The manufacturer ID of the PCMCIA cards to detect. If 0, the function will search for all PCMCIA manufacturer IDs. | |
| The card ID of the PCMCIA cards to detect. If 0, the
function will search for all PCMCIA card IDs. If both wManufacturerId and wCardId are set to 0 the function will return information regarding all connected PCMCIA cards. |
|
| Number of cards detected for the specified search criteria set in the searchId field | |
| Array of PCMCIA card ID information structures for the detected PCMCIA cards that match the search criteria set in the searchId field: | |
| Manufacturer ID | |
| Card ID | |
| Array of PCMCIA slot information structures for the detected PCMCIA cards that match the search criteria set in the searchId field: | |
| Bus number (0 based) | |
| Socket number (0 based) | |
| Function number (0 based) | |
| Should always be set to 0 (reserved for future use) |
RETURN VALUE
Returns WD_STATUS_SUCCESS (0) on success, or an appropriate error code otherwise [A].
EXAMPLE
WD_PCMCIA_SCAN_CARDS pcmciaScan;
DWORD cards_found;
WD_PCMCIA_SLOT pcmciaSlot;
BZERO(pcmciaScan);
pcmciaScan.searchId.wManufacturerId = 0x1234;
pcmciaScan.searchId.wCardId = 0x5678;
WD_PcmciaScanCards(hWD, &pcmciaScan);
if (pcmciaScan.dwCards>0) /* Found at least one device */
{
/* Use the first card found */
pcmciaSlot = pcmciaScan.cardSlot[0];
}
else
{
printf("No matching PCMCIA devices found\n");
}