mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
4.0 KiB
206 lines
4.0 KiB
/*++
|
|
|
|
Copyright (c) 2000, Microsoft Corporation
|
|
|
|
Module Name:
|
|
eldeviceio.h
|
|
|
|
Abstract:
|
|
|
|
This module contains declarations for media-management and device I/O.
|
|
The module interfaces with WMI, NDIS for device managment, and NDIS UIO
|
|
for read/write of data.
|
|
The routines declared here operate asynchronously on the handles
|
|
associated with an I/O completion port opened on the ndis uio driver.
|
|
|
|
|
|
Revision History:
|
|
|
|
sachins, Apr 23 2000, Created
|
|
|
|
--*/
|
|
|
|
#ifndef _EAPOL_DEVICEIO_H_
|
|
#define _EAPOL_DEVICEIO_H_
|
|
|
|
//
|
|
// Hash table definition for interfaces
|
|
//
|
|
|
|
typedef struct _EAPOL_ITF
|
|
{
|
|
struct _EAPOL_ITF *pNext;
|
|
WCHAR *pwszInterfaceDesc; // Friendly name of interface
|
|
WCHAR *pwszInterfaceGUID; // GUID
|
|
} EAPOL_ITF, *PEAPOL_ITF;
|
|
|
|
|
|
typedef struct _ITF_BUCKET
|
|
{
|
|
EAPOL_ITF *pItf;
|
|
} ITF_BUCKET, *PITF_BUCKET;
|
|
|
|
|
|
typedef struct _ITF_TABLE
|
|
{
|
|
ITF_BUCKET *pITFBuckets;
|
|
DWORD dwNumITFBuckets;
|
|
} ITF_TABLE, *PITF_TABLE;
|
|
|
|
|
|
//
|
|
// Variables global to eldeviceio.h
|
|
//
|
|
|
|
// Interface table containing interface friendly-name GUID pair
|
|
|
|
ITF_TABLE g_ITFTable;
|
|
|
|
// Read-write lock for interface table synchronization
|
|
|
|
READ_WRITE_LOCK g_ITFLock;
|
|
|
|
|
|
//
|
|
// FUNCTION DECLARATIONS
|
|
//
|
|
|
|
DWORD
|
|
ElMediaInit (
|
|
);
|
|
|
|
DWORD
|
|
ElMediaDeInit (
|
|
);
|
|
|
|
DWORD
|
|
ElMediaEventsHandler (
|
|
IN PWZC_DEVICE_NOTIF pwzcDeviceNotif
|
|
);
|
|
|
|
DWORD
|
|
ElMediaSenseRegister (
|
|
IN BOOL Register
|
|
);
|
|
|
|
VOID
|
|
ElMediaSenseCallback (
|
|
IN PWNODE_HEADER pWnodeHeader,
|
|
IN UINT_PTR uiNotificationContext
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
ElMediaSenseCallbackWorker (
|
|
IN PVOID pvContext
|
|
);
|
|
|
|
DWORD
|
|
ElBindingsNotificationRegister (
|
|
IN BOOL fRegister
|
|
);
|
|
|
|
VOID
|
|
ElBindingsNotificationCallback (
|
|
IN PWNODE_HEADER pWnodeHeader,
|
|
IN UINT_PTR uiNotificationContext
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
ElBindingsNotificationCallbackWorker (
|
|
IN PVOID pvContext
|
|
);
|
|
|
|
DWORD
|
|
ElDeviceNotificationRegister (
|
|
IN BOOL fRegister
|
|
);
|
|
|
|
DWORD
|
|
ElDeviceNotificationHandler (
|
|
IN PVOID lpEventData,
|
|
IN DWORD dwEventType
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
ElDeviceNotificationHandlerWorker (
|
|
IN PVOID pvContext
|
|
);
|
|
|
|
DWORD
|
|
ElEnumAndOpenInterfaces (
|
|
IN WCHAR *pwszDesiredDescription,
|
|
IN WCHAR *pwszDesiredGUID,
|
|
IN DWORD dwHandle,
|
|
IN PRAW_DATA prdUserData
|
|
);
|
|
|
|
DWORD
|
|
ElOpenInterfaceHandle (
|
|
IN WCHAR *pwszDeviceName,
|
|
OUT HANDLE hDevice
|
|
);
|
|
|
|
DWORD
|
|
ElCloseInterfaceHandle (
|
|
IN HANDLE hDevice,
|
|
IN LPWSTR pwszDeviceGUID
|
|
);
|
|
|
|
DWORD
|
|
ElReadFromInterface (
|
|
IN HANDLE hDevice,
|
|
IN PEAPOL_BUFFER pBuffer,
|
|
IN DWORD dwBufferLength
|
|
);
|
|
|
|
DWORD
|
|
ElWriteToInterface (
|
|
IN HANDLE hDevice,
|
|
IN PEAPOL_BUFFER pBuffer,
|
|
IN DWORD dwBufferLength
|
|
);
|
|
|
|
DWORD
|
|
ElGetCardStatus (
|
|
UNICODE_STRING *pInterface,
|
|
DWORD *pdwNetCardStatus,
|
|
DWORD *pdwMediaType
|
|
);
|
|
|
|
DWORD
|
|
ElHashInterfaceDescToBucket (
|
|
IN WCHAR *pwszInterfaceDesc
|
|
);
|
|
|
|
PEAPOL_ITF
|
|
ElGetITFPointerFromInterfaceDesc (
|
|
IN WCHAR *pwszInterfaceDesc
|
|
);
|
|
|
|
VOID
|
|
ElRemoveITFFromTable (
|
|
IN EAPOL_ITF *pITF
|
|
);
|
|
|
|
DWORD
|
|
ElNdisuioEnumerateInterfaces (
|
|
IN OUT PNDIS_ENUM_INTF pItfBuffer,
|
|
IN DWORD dwAvailableInterfaces,
|
|
IN DWORD dwBufferSize
|
|
);
|
|
|
|
DWORD
|
|
ElShutdownInterface (
|
|
IN WCHAR *pwszGUID
|
|
);
|
|
|
|
DWORD
|
|
ElCreateInterfaceEntry (
|
|
IN WCHAR *pwszInterfaceGUID,
|
|
IN WCHAR *pwszInterfaceDescription
|
|
);
|
|
|
|
#endif //_EAPOL_DEVICEIO_H_
|