|
|
/*++
Copyright (c) 1990-1995 Microsoft Corporation
Module Name:
protos.h
Abstract:
NDIS wrapper function prototypes
Author:
Environment:
Kernel mode, FSD
Revision History:
Jun-95 Jameel Hyder Split up from a monolithic file --*/
NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath );
#if NDIS_UNLOAD
VOID ndisUnload( IN PDRIVER_OBJECT DriverObject ); #endif
NTSTATUS ndisBuildDeviceAcl( OUT PACL *DeviceAcl, IN BOOLEAN AddNetConfigOps );
NTSTATUS ndisCreateSecurityDescriptor( IN PDEVICE_OBJECT DeviceObject, OUT PSECURITY_DESCRIPTOR * pSecurityDescriptor, BOOLEAN AddNetConfigOps );
BOOLEAN ndisCheckAccess ( PIRP Irp, PIO_STACK_LOCATION IrpSp, PNTSTATUS Status, PSECURITY_DESCRIPTOR SecurityDescriptor );
VOID ndisReadRegistry( VOID ); VOID ndisWorkerThread( IN PVOID Context ); NTSTATUS ndisReadRegParameters( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext );
NTSTATUS ndisReadProcessorAffinityMask( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext );
NTSTATUS ndisAddMediaTypeToArray( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext );
NDIS_STATUS ndisCloseAllBindingsOnProtocol( PNDIS_PROTOCOL_BLOCK Protocol );
BOOLEAN ndisIMCheckDeviceInstance( IN PNDIS_M_DRIVER_BLOCK MiniBlock, IN PUNICODE_STRING DeviceInstance, OUT PNDIS_HANDLE DeviceContext OPTIONAL );
NDIS_STATUS ndisIMInitializeDeviceInstance( IN PNDIS_MINIPORT_BLOCK Miniport, IN NDIS_HANDLE DeviceContext, IN BOOLEAN fStartIrp );
NDIS_STATUS ndisIMQueueDeviceInstance( IN PNDIS_M_DRIVER_BLOCK MiniBlock, IN PNDIS_STRING DeviceInstance, IN NDIS_HANDLE DeviceContext );
NTSTATUS FASTCALL ndisPnPQueryRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS FASTCALL ndisPnPCancelRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS FASTCALL ndisPnPRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp OPTIONAL ); VOID ndisSetDeviceNames( IN PNDIS_STRING ExportName, OUT PNDIS_STRING DeviceName, OUT PNDIS_STRING BaseName, IN PUCHAR Buffer );
NTSTATUS FASTCALL ndisPnPQueryStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS FASTCALL ndisPnPCancelStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS FASTCALL ndisPnPStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NDIS_STATUS ndisTranslateResources( IN PNDIS_MINIPORT_BLOCK Miniport, IN CM_RESOURCE_TYPE ResourceType, IN PHYSICAL_ADDRESS Resource, OUT PPHYSICAL_ADDRESS pTranslatedResource, OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR *pResourceDescriptor OPTIONAL );
NTSTATUS FASTCALL ndisQueryBusInterface( IN PNDIS_MINIPORT_BLOCK Miniport );
ULONG ndisGetSetBusConfigSpace( IN PNDIS_MINIPORT_BLOCK Miniport, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length, IN ULONG WhichSpace, IN BOOLEAN Read );
VOID FASTCALL ndisReinitializeMiniportBlock( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID FASTCALL ndisCheckAdapterBindings( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_PROTOCOL_BLOCK Protocol OPTIONAL );
NDIS_STATUS FASTCALL ndisPnPStartDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS ndisQueryReferenceBusInterface( IN PDEVICE_OBJECT PnpDeviceObject, OUT PBUS_INTERFACE_REFERENCE * BusInterface );
NTSTATUS ndisPnPAddDevice( IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject );
NTSTATUS ndisAddDevice( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING pExportName, IN PDEVICE_OBJECT PhysicalDeviceObject, IN ULONG Characteristics ); NTSTATUS ndisWritePnPCapabilities( IN PNDIS_MINIPORT_BLOCK Miniport, IN ULONG PnPCapabilities ); NDIS_STATUS ndisRegisterMiniportDriver( IN NDIS_HANDLE NdisWrapperHandle, IN PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, IN UINT CharacteristicsLength, OUT PNDIS_HANDLE DriverHandle );
NTSTATUS ndisDispatchRequest( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp );
NTSTATUS FASTCALL ndisHandlePnPRequest( IN PIRP pIrp );
NTSTATUS FASTCALL ndisHandleLegacyTransport( IN PUNICODE_STRING pDevice );
NTSTATUS FASTCALL ndisHandleProtocolBindNotification( IN PUNICODE_STRING pDevice, IN PUNICODE_STRING Protocol );
NTSTATUS FASTCALL ndisHandleProtocolUnbindNotification( IN PUNICODE_STRING pDevice, IN PUNICODE_STRING Protocol );
NTSTATUS ndisHandleProtocolReconfigNotification( IN PUNICODE_STRING pDevice, IN PUNICODE_STRING Protocol, IN PVOID ReConfigBuffer, IN UINT ReConfigBufferSize, IN UINT Operation );
NTSTATUS FASTCALL ndisHandleProtocolUnloadNotification( IN PUNICODE_STRING Protocol );
NTSTATUS FASTCALL ndisHandleOrphanDevice( IN PUNICODE_STRING pDevice );
NTSTATUS FASTCALL ndisHandleUModePnPOp( IN PNDIS_PNP_OPERATION PnPOp );
NTSTATUS FASTCALL ndisEnumerateInterfaces( IN PNDIS_ENUM_INTF EnumIntf, IN UINT BufferLength );
#if defined(_WIN64)
NTSTATUS FASTCALL ndisEnumerateInterfaces32( IN PNDIS_ENUM_INTF32 EnumIntf, IN UINT BufferLength ); #endif // _WIN64
VOID ndisFindRootDevice( IN PNDIS_STRING DeviceName, IN BOOLEAN fTester, OUT PNDIS_STRING * pBindDeviceName, OUT PNDIS_STRING * pRootDeviceName, OUT PNDIS_MINIPORT_BLOCK * pMiniport );
PNDIS_MINIPORT_BLOCK ndisFindMiniportOnGlobalList( IN PNDIS_STRING DeviceName );
NTSTATUS ndisUnbindProtocol( IN PNDIS_OPEN_BLOCK Open, IN BOOLEAN Notify );
VOID ndisReferenceMiniportByName( IN PUNICODE_STRING DeviceName, OUT PNDIS_MINIPORT_BLOCK * pMiniport );
PNDIS_OPEN_BLOCK FASTCALL ndisMapOpenByName( IN PUNICODE_STRING DeviceName, IN PNDIS_PROTOCOL_BLOCK Protocol, IN BOOLEAN Reference, IN BOOLEAN fUnbinding );
VOID NdisMCancelTimer( IN PNDIS_MINIPORT_TIMER Timer, OUT PBOOLEAN TimerCancelled );
//
// general reference/dereference functions
//
BOOLEAN FASTCALL ndisReferenceRef( IN PREFERENCE RefP );
BOOLEAN FASTCALL ndisDereferenceRef( IN PREFERENCE RefP );
VOID FASTCALL ndisInitializeRef( IN PREFERENCE RefP );
BOOLEAN FASTCALL ndisCloseRef( IN PREFERENCE RefP );
BOOLEAN FASTCALL ndisReferenceULongRef( IN PULONG_REFERENCE RefP );
VOID FASTCALL ndisReferenceULongRefNoCheck( IN PULONG_REFERENCE RefP );
BOOLEAN FASTCALL ndisDereferenceULongRef( IN PULONG_REFERENCE RefP );
VOID FASTCALL ndisInitializeULongRef( IN PULONG_REFERENCE RefP );
BOOLEAN FASTCALL ndisCloseULongRef( IN PULONG_REFERENCE RefP );
#if DBG
BOOLEAN FASTCALL ndisReferenceProtocol( IN PNDIS_PROTOCOL_BLOCK Protocol ); #else
#define ndisReferenceProtocol(ProtP) ndisReferenceRef(&(ProtP)->Ref)
#endif
NTSTATUS FASTCALL ndisReferenceProtocolByName( IN PUNICODE_STRING ProtocolName, IN OUT PNDIS_PROTOCOL_BLOCK * Protocol, IN BOOLEAN fPartialMatch );
VOID FASTCALL ndisDereferenceProtocol( IN PNDIS_PROTOCOL_BLOCK Protocol );
VOID FASTCALL ndisDeQueueOpenOnProtocol( IN PNDIS_OPEN_BLOCK Open, IN PNDIS_PROTOCOL_BLOCK Protocol );
BOOLEAN ndisCheckPortUsage( IN ULONG PortNumber, IN PNDIS_MINIPORT_BLOCK Miniport, OUT PULONG pTranslatedPort, OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR *pResourceDescriptor ); VOID ndisImmediateReadWritePort( IN NDIS_HANDLE WrapperConfigurationContext, IN ULONG Port, IN OUT PVOID Data, IN ULONG Size, IN BOOLEAN Read );
BOOLEAN ndisCheckMemoryUsage( IN ULONG Address, IN PNDIS_MINIPORT_BLOCK Miniport, OUT PULONG pTranslatedAddress, OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR *pResourceDescriptor ); VOID ndisImmediateReadWriteSharedMemory( IN NDIS_HANDLE WrapperConfigurationContext, IN ULONG SharedMemoryAddress, OUT PUCHAR Buffer, IN ULONG Length, IN BOOLEAN Read ); NTSTATUS ndisStartMapping( IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN ULONG InitialAddress, IN ULONG Length, IN ULONG AddressSpace, OUT PVOID * InitialMapping, OUT PBOOLEAN Mapped );
NTSTATUS ndisEndMapping( IN PVOID InitialMapping, IN ULONG Length, IN BOOLEAN Mapped );
NDIS_STATUS ndisInitializeAdapter( IN PNDIS_M_DRIVER_BLOCK pMiniBlock, IN PDEVICE_OBJECT DeviceObject, IN PUNICODE_STRING RegServiceName, IN NDIS_HANDLE DeviceContext OPTIONAL );
BOOLEAN ndisWmiGuidIsAdapterSpecific( IN LPGUID guid );
NTSTATUS ndisCreateAdapterInstanceName( OUT PUNICODE_STRING * pAdapterInstanceName, IN PDEVICE_OBJECT PhysicalDeviceObject );
NDIS_STATUS ndisInitializeConfiguration( OUT PNDIS_WRAPPER_CONFIGURATION_HANDLE pConfigurationHandle, IN PNDIS_MINIPORT_BLOCK Miniport, IN PUNICODE_STRING pExportName );
NTSTATUS ndisReadBindPaths( IN PNDIS_MINIPORT_BLOCK Miniport, IN PRTL_QUERY_REGISTRY_TABLE LQueryTable );
NDIS_STATUS ndisMInitializeAdapter( IN PNDIS_M_DRIVER_BLOCK pMiniDriver, IN PNDIS_WRAPPER_CONFIGURATION_HANDLE pConfigurationHandle, IN PUNICODE_STRING pExportName, IN NDIS_HANDLE DeviceContext OPTIONAL );
VOID FASTCALL ndisInitializeBinding( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_PROTOCOL_BLOCK Protocol );
BOOLEAN FASTCALL ndisProtocolAlreadyBound( IN PNDIS_PROTOCOL_BLOCK Protocol, IN PNDIS_MINIPORT_BLOCK Miniport );
NTSTATUS FASTCALL ndisMShutdownMiniport( IN PNDIS_MINIPORT_BLOCK Miniport );
NDIS_STATUS FASTCALL ndisCloseMiniportBindings( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID ndisCheckProtocolBindings( IN PNDIS_PROTOCOL_BLOCK Protocol );
VOID ndisMQueuedAllocateSharedHandler( IN PASYNC_WORKITEM pWorkItem );
VOID ndisMQueuedFreeSharedHandler( IN PASYNC_WORKITEM pWorkItem );
/*++
BOOLEAN ndisReferenceDriver( IN PNDIS_M_DRIVER_BLOCK DriverP ); --*/
#define ndisReferenceDriver(DriverP) ndisReferenceRef(&(DriverP)->Ref)
VOID FASTCALL ndisDereferenceDriver( IN PNDIS_M_DRIVER_BLOCK DriverP, IN BOOLEAN fGlobalLockHeld );
BOOLEAN FASTCALL ndisQueueMiniportOnDriver( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_M_DRIVER_BLOCK Driver );
VOID FASTCALL ndisDeQueueMiniportOnDriver( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_M_DRIVER_BLOCK Driver );
/*++
BOOLEAN FASTCALL ndisReferenceMiniport( IN PNDIS_MINIPORT_BLOCK Miniport ); --*/
#if DBG
BOOLEAN FASTCALL ndisReferenceMiniport( IN PNDIS_MINIPORT_BLOCK Miniport ); #else
#define ndisReferenceMiniport(Miniport) ndisReferenceULongRef(&(Miniport)->Ref)
#endif
#ifdef TRACK_MINIPORT_REFCOUNTS
BOOLEAN ndisReferenceMiniportAndLog( IN PNDIS_MINIPORT_BLOCK Miniport, IN UINT Line, IN UINT Module ); BOOLEAN ndisReferenceMiniportAndLogCreate( IN PNDIS_MINIPORT_BLOCK Miniport, IN UINT Line, IN UINT Module, IN PIRP Irp ); #endif
VOID FASTCALL ndisDereferenceMiniport( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID FASTCALL ndisDeQueueOpenOnMiniport( IN PNDIS_OPEN_BLOCK MiniportOpen, IN PNDIS_MINIPORT_BLOCK Miniport );
VOID FASTCALL ndisInitializePackage( IN PPKG_REF pPkg );
VOID FASTCALL ndisReferencePackage( IN PPKG_REF pPkg );
VOID FASTCALL ndisDereferencePackage( IN PPKG_REF pPkg );
#define ProtocolReferencePackage() ndisReferencePackage(&ndisPkgs[NDSP_PKG])
#define MiniportReferencePackage() ndisReferencePackage(&ndisPkgs[NDSM_PKG])
#define PnPReferencePackage() ndisReferencePackage(&ndisPkgs[NPNP_PKG])
#define CoReferencePackage() ndisReferencePackage(&ndisPkgs[NDCO_PKG])
#define EthReferencePackage() ndisReferencePackage(&ndisPkgs[NDSE_PKG])
#define FddiReferencePackage() ndisReferencePackage(&ndisPkgs[NDSF_PKG])
#define TrReferencePackage() ndisReferencePackage(&ndisPkgs[NDST_PKG])
#define ArcReferencePackage() ndisReferencePackage(&ndisPkgs[NDSA_PKG])
#define ProtocolDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDSP_PKG])
#define MiniportDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDSM_PKG])
#define PnPDereferencePackage() ndisDereferencePackage(&ndisPkgs[NPNP_PKG])
#define CoDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDCO_PKG])
#define EthDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDSE_PKG])
#define FddiDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDSF_PKG])
#define TrDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDST_PKG])
#define ArcDereferencePackage() ndisDereferencePackage(&ndisPkgs[NDSA_PKG])
//
// IRP handlers established on behalf of NDIS devices by the wrapper.
//
NTSTATUS ndisCreateIrpHandler( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS ndisDeviceControlIrpHandler( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS ndisCloseIrpHandler( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS ndisDummyIrpHandler( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
VOID ndisCancelLogIrp( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NDIS_STATUS FASTCALL ndisMGetLogData( IN PNDIS_MINIPORT_BLOCK Miniport, IN PIRP Irp );
BOOLEAN FASTCALL ndisQueueOpenOnProtocol( IN PNDIS_OPEN_BLOCK Open, IN PNDIS_PROTOCOL_BLOCK Protocol );
VOID NdisCancelTimer( IN PNDIS_TIMER Timer, OUT PBOOLEAN TimerCancelled );
//
// Dma operations
//
extern IO_ALLOCATION_ACTION ndisDmaExecutionRoutine( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID MapRegisterBase, IN PVOID Context );
//
// Map Registers
//
extern IO_ALLOCATION_ACTION ndisAllocationExecutionRoutine( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID MapRegisterBase, IN PVOID Context );
#undef NdisMSendResourcesAvailable
VOID NdisMSendResourcesAvailable( IN NDIS_HANDLE MiniportAdapterHandle );
#undef NdisMResetComplete
VOID NdisMResetComplete( IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_STATUS Status, IN BOOLEAN AddressingReset );
NTSTATUS ndisSaveParameters( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext );
NTSTATUS ndisReadParameter( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext );
VOID FASTCALL ndisMCommonHaltMiniport( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID FASTCALL ndisMHaltMiniport( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID ndisMUnload( IN PDRIVER_OBJECT DriverObject );
NDIS_STATUS FASTCALL ndisQueryDeviceOid( IN PNDIS_USER_OPEN_CONTEXT OpenContext, IN PNDIS_REQUEST QueryRequest, IN NDIS_OID Oid, IN PVOID Buffer, IN UINT BufferLength );
BOOLEAN FASTCALL ndisValidOid( IN PNDIS_USER_OPEN_CONTEXT OpenContext, IN NDIS_OID Oid );
NDIS_STATUS FASTCALL ndisSplitStatisticsOids( IN PNDIS_USER_OPEN_CONTEXT OpenContext, IN PNDIS_OID OidList, IN ULONG NumOids );
VOID FASTCALL ndisMFinishClose( IN PNDIS_OPEN_BLOCK Open );
VOID ndisMQueuedFinishClose( IN PNDIS_OPEN_BLOCK Open );
BOOLEAN FASTCALL ndisMKillOpen( IN PNDIS_OPEN_BLOCK Open );
NDIS_STATUS FASTCALL ndisQueryOidList( IN PNDIS_USER_OPEN_CONTEXT OpenContext );
VOID ndisBugcheckHandler( IN PNDIS_WRAPPER_CONTEXT WrapperContext, IN ULONG Size );
VOID ndisMFinishQueuedPendingOpen( IN PNDIS_POST_OPEN_PROCESSING PostOpen );
VOID NdisAllocatePacketPool( OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE PoolHandle, IN UINT NumberOfDescriptors, IN UINT ProtocolReservedLength ); #undef NdisIMInitializeDeviceInstance
NDIS_STATUS NdisIMInitializeDeviceInstance( IN NDIS_HANDLE DriverHandle, IN PNDIS_STRING DriverInstance );
#undef NdisSend
VOID NdisSend( OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle, IN PNDIS_PACKET Packet );
#undef NdisSendPackets
VOID NdisSendPackets( IN NDIS_HANDLE NdisBindingHandle, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets );
VOID NdisMStartBufferPhysicalMapping( IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_BUFFER Buffer, IN ULONG PhysicalMapRegister, IN BOOLEAN WriteToDevice, OUT PNDIS_PHYSICAL_ADDRESS_UNIT PhysicalAddressArray, OUT PUINT ArraySize );
VOID NdisMCompleteBufferPhysicalMapping( IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_BUFFER Buffer, IN ULONG PhysicalMapRegister );
VOID FASTCALL ndisMAllocSGList( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_PACKET Packet );
VOID FASTCALL ndisMFreeSGList( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_PACKET Packet );
VOID ndisMProcessSGList( IN PDEVICE_OBJECT pDO, IN PIRP pIrp, IN PSCATTER_GATHER_LIST pSGL, IN PVOID Context );
VOID ndisWorkItemHandler( IN PNDIS_WORK_ITEM WorkItem );
//
// MISC
//
#undef NDIS_BUFFER_TO_SPAN_PAGES
ULONG NDIS_BUFFER_TO_SPAN_PAGES( IN PNDIS_BUFFER Buffer );
#undef NdisGetFirstBufferFromPacket
VOID NdisGetFirstBufferFromPacket( IN PNDIS_PACKET Packet, OUT PNDIS_BUFFER * FirstBuffer, OUT PVOID * FirstBufferVA, OUT PUINT FirstBufferLength, OUT PUINT TotalBufferLength );
#undef NdisGetFirstBufferFromPacketSafe
VOID NdisGetFirstBufferFromPacketSafe( IN PNDIS_PACKET Packet, OUT PNDIS_BUFFER * FirstBuffer, OUT PVOID * FirstBufferVA, OUT PUINT FirstBufferLength, OUT PUINT TotalBufferLength, IN MM_PAGE_PRIORITY Priority );
#undef NdisBufferLength
ULONG NdisBufferLength( IN PNDIS_BUFFER Buffer );
#undef NdisBufferVirtualAddress
PVOID NdisBufferVirtualAddress( IN PNDIS_BUFFER Buffer );
#undef NdisGetBufferPhysicalArraySize
VOID NdisGetBufferPhysicalArraySize( IN PNDIS_BUFFER Buffer, OUT PUINT ArraySize );
#undef NdisAllocateSpinLock
VOID NdisAllocateSpinLock( IN PNDIS_SPIN_LOCK SpinLock );
#undef NdisFreeSpinLock
VOID NdisFreeSpinLock( IN PNDIS_SPIN_LOCK SpinLock );
#undef NdisAcquireSpinLock
VOID NdisAcquireSpinLock( IN PNDIS_SPIN_LOCK SpinLock );
#undef NdisReleaseSpinLock
VOID NdisReleaseSpinLock( IN PNDIS_SPIN_LOCK SpinLock );
#undef NdisDprAcquireSpinLock
VOID NdisDprAcquireSpinLock( IN PNDIS_SPIN_LOCK SpinLock );
#undef NdisDprReleaseSpinLock
VOID NdisDprReleaseSpinLock( IN PNDIS_SPIN_LOCK SpinLock );
#undef NdisGetCurrentSystemTime
VOID NdisGetCurrentSystemTime( IN PLARGE_INTEGER pCurrentTime );
#undef NdisQueryBufferSafe
VOID NdisQueryBufferSafe( IN PNDIS_BUFFER Buffer, OUT PVOID * VirtualAddress OPTIONAL, OUT PUINT Length, IN MM_PAGE_PRIORITY Priority );
#undef NdisQueryBufferOffset
VOID NdisQueryBufferOffset( IN PNDIS_BUFFER Buffer, OUT PUINT Offset, OUT PUINT Length );
#undef NdisAdjustBufferLength
VOID NdisAdjustBufferLength( IN PNDIS_BUFFER Buffer, IN UINT Length );
#undef NdisUpdateSharedMemory
VOID NdisUpdateSharedMemory( IN NDIS_HANDLE NdisAdapterHandle, IN ULONG Length, IN PVOID VirtualAddress, IN NDIS_PHYSICAL_ADDRESS PhysicalAddress );
#undef NdisFreePacketPool
VOID NdisFreePacketPool( IN NDIS_HANDLE PoolHandle );
#undef NdisFreePacket
VOID NdisFreePacket( IN PNDIS_PACKET Packet );
#undef NdisDprFreePacketNonInterlocked
VOID NdisDprFreePacketNonInterlocked( IN PNDIS_PACKET Packet );
#undef NdisDprFreePacket
VOID NdisDprFreePacket( IN PNDIS_PACKET Packet );
VOID FASTCALL ndisFreePacket( IN PNDIS_PACKET Packet, IN PNDIS_PKT_POOL Pool );
#undef NdisAnsiStringToUnicodeString
NDIS_STATUS NdisAnsiStringToUnicodeString( IN OUT PUNICODE_STRING DestinationString, IN PANSI_STRING SourceString );
#undef NdisUnicodeStringToAnsiString
NDIS_STATUS NdisUnicodeStringToAnsiString( IN OUT PANSI_STRING DestinationString, IN PUNICODE_STRING SourceString );
#undef NdisCompareAnsiString
BOOLEAN NdisCompareAnsiString( IN PANSI_STRING String1, IN PANSI_STRING String2, IN BOOLEAN CaseInSensitive );
#undef NdisCompareUnicodeString
BOOLEAN NdisCompareUnicodeString( IN PUNICODE_STRING String1, IN PUNICODE_STRING String2, IN BOOLEAN CaseInSensitive );
#undef NdisUpcaseUnicodeString
NDIS_STATUS NdisUpcaseUnicodeString( OUT PUNICODE_STRING DestinationString, IN PUNICODE_STRING SourceString );
#undef NdisReset
VOID NdisReset( OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle );
#undef NdisRequest
VOID NdisRequest( OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle, IN PNDIS_REQUEST NdisRequest );
#undef NdisTransferData
VOID NdisTransferData( OUT PNDIS_STATUS Status, IN NDIS_HANDLE NdisBindingHandle, IN NDIS_HANDLE MacReceiveContext, IN UINT ByteOffset, IN UINT BytesToTransfer, IN OUT PNDIS_PACKET Packet, OUT PUINT BytesTransferred );
BOOLEAN ndisVerifierInitialization( VOID ); BOOLEAN ndisVerifierInjectResourceFailure ( IN BOOLEAN fDelayFailure );
EXPORT NDIS_STATUS ndisVerifierAllocateMemory( OUT PVOID * VirtualAddress, IN UINT Length, IN UINT MemoryFlags, IN NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress );
EXPORT NDIS_STATUS ndisVerifierAllocateMemoryWithTag( OUT PVOID * VirtualAddress, IN UINT Length, IN ULONG Tag ); EXPORT VOID ndisVerifierAllocatePacketPool( OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE PoolHandle, IN UINT NumberOfDescriptors, IN UINT ProtocolReservedLength ); EXPORT VOID ndisVerifierAllocatePacketPoolEx( OUT PNDIS_STATUS Status, OUT PNDIS_HANDLE PoolHandle, IN UINT NumberOfDescriptors, IN UINT NumberOfOverflowDescriptors, IN UINT ProtocolReservedLength );
EXPORT VOID ndisVerifierFreePacketPool( IN NDIS_HANDLE PoolHandle );
NDIS_STATUS ndisVerifierQueryMapRegisterCount( IN NDIS_INTERFACE_TYPE BusType, OUT PUINT MapRegisterCount );
VOID ndisFreePacketPool( IN NDIS_HANDLE PoolHandle, IN BOOLEAN Verify );
#if TRACK_MEMORY
extern PVOID AllocateM( IN UINT Size, IN ULONG ModLine, IN ULONG Tag );
extern VOID FreeM( IN PVOID MemPtr );
#endif
VOID ndisMNotifyMachineName( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_STRING MachineName OPTIONAL );
VOID ndisPowerStateCallback( IN PVOID CallBackContext, IN PVOID Argument1, IN PVOID Argument2 ); VOID ndisNotifyMiniports( IN PNDIS_MINIPORT_BLOCK Miniport OPTIONAL, IN NDIS_DEVICE_PNP_EVENT DevicePnPEvent, IN PVOID Buffer, IN ULONG Length );
PNDIS_MINIPORT_BLOCK ndisReferenceNextUnprocessedMiniport( IN PNDIS_M_DRIVER_BLOCK MiniBlock );
VOID ndisUnprocessAllMiniports( IN PNDIS_M_DRIVER_BLOCK MiniBlock );
#undef NdisSetPacketCancelId
VOID NdisSetPacketCancelId( IN PNDIS_PACKET Packet, IN PVOID CancelId );
#undef NdisGetPacketCancelId
PVOID NdisGetPacketCancelId( IN PNDIS_PACKET Packet );
VOID ndisSetupWmiNode( IN PNDIS_MINIPORT_BLOCK Miniport, IN PUNICODE_STRING InstanceName, IN ULONG DataBlockSize, IN PVOID pGuid, IN OUT PWNODE_SINGLE_INSTANCE * pwnode );
BOOLEAN FASTCALL ndisMStartSendPacketsSG( IN PNDIS_MINIPORT_BLOCK Miniport );
NDIS_STATUS ndisMSendSG( IN NDIS_HANDLE NdisBindingHandle, IN PNDIS_PACKET Packet );
BOOLEAN FASTCALL ndisMStartSendsSG( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID ndisMSendPacketsSG( IN NDIS_HANDLE NdisBindingHandle, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets );
VOID ndisMSendCompleteSG( IN NDIS_HANDLE MiniportAdapterHandle, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status );
VOID FASTCALL ndisMAllocSGListS( IN PNDIS_MINIPORT_BLOCK Miniport, IN PNDIS_PACKET Packet );
VOID ndisMProcessSGListS( IN PDEVICE_OBJECT pDO, IN PIRP pIrp, IN PSCATTER_GATHER_LIST pSGL, IN PVOID Context );
VOID ndisDereferenceDmaAdapter( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID ndisDereferenceAfNotification( IN PNDIS_OPEN_BLOCK Open );
VOID ndisMSetIndicatePacketHandler( IN PNDIS_MINIPORT_BLOCK Miniport );
VOID ndisVerifierFreeMemory( IN PVOID VirtualAddress, IN UINT Length, IN UINT MemoryFlags );
VOID ndisUpdateCheckForLoopbackFlag( IN PNDIS_MINIPORT_BLOCK Miniport );
BOOLEAN ndisReferenceOpenByHandle( IN PNDIS_OPEN_BLOCK Open, IN BOOLEAN fRef );
BOOLEAN ndisRemoveOpenFromGlobalList( IN PNDIS_OPEN_BLOCK Open );
NDIS_STATUS ndisMRegisterInterruptCommon( OUT PNDIS_MINIPORT_INTERRUPT Interrupt, IN NDIS_HANDLE MiniportAdapterHandle, IN UINT InterruptVector, IN UINT InterruptLevel, IN BOOLEAN RequestIsr, IN BOOLEAN SharedInterrupt, IN NDIS_INTERRUPT_MODE InterruptMode );
VOID ndisMDeregisterInterruptCommon( IN PNDIS_MINIPORT_INTERRUPT MiniportInterrupt );
NTSTATUS CreateDeviceDriverSecurityDescriptor( PVOID DeviceOrDriverObject );
|