Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

ndismini.h

Go to the documentation of this file.
00001 #include <afilter.h> 00002 #include <efilter.h> 00003 #include <tfilter.h> 00004 #include <ffilter.h> 00005 00006 #define NDIS_M_MAX_LOOKAHEAD 526 00007 00008 // 00009 // declare these first since they point to each other 00010 // 00011 00012 typedef struct _NDIS_M_DRIVER_BLOCK NDIS_M_DRIVER_BLOCK, *PNDIS_M_DRIVER_BLOCK; 00013 typedef struct _NDIS_MINIPORT_BLOCK NDIS_MINIPORT_BLOCK,*PNDIS_MINIPORT_BLOCK; 00014 typedef struct _CO_CALL_PARAMETERS CO_CALL_PARAMETERS, *PCO_CALL_PARAMETERS; 00015 typedef struct _CO_MEDIA_PARAMETERS CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS; 00016 typedef struct _NDIS_CALL_MANAGER_CHARACTERISTICS *PNDIS_CALL_MANAGER_CHARACTERISTICS; 00017 typedef struct _NDIS_AF_LIST NDIS_AF_LIST, *PNDIS_AF_LIST; 00018 typedef struct _NULL_FILTER NULL_FILTER, *PNULL_FILTER; 00019 00020 // 00021 // Function types for NDIS_MINIPORT_CHARACTERISTICS 00022 // 00023 00024 00025 typedef 00026 BOOLEAN 00027 (*W_CHECK_FOR_HANG_HANDLER)( 00028 IN NDIS_HANDLE MiniportAdapterContext 00029 ); 00030 00031 typedef 00032 VOID 00033 (*W_DISABLE_INTERRUPT_HANDLER)( 00034 IN NDIS_HANDLE MiniportAdapterContext 00035 ); 00036 00037 typedef 00038 VOID 00039 (*W_ENABLE_INTERRUPT_HANDLER)( 00040 IN NDIS_HANDLE MiniportAdapterContext 00041 ); 00042 00043 typedef 00044 VOID 00045 (*W_HALT_HANDLER)( 00046 IN NDIS_HANDLE MiniportAdapterContext 00047 ); 00048 00049 typedef 00050 VOID 00051 (*W_HANDLE_INTERRUPT_HANDLER)( 00052 IN NDIS_HANDLE MiniportAdapterContext 00053 ); 00054 00055 typedef 00056 NDIS_STATUS 00057 (*W_INITIALIZE_HANDLER)( 00058 OUT PNDIS_STATUS OpenErrorStatus, 00059 OUT PUINT SelectedMediumIndex, 00060 IN PNDIS_MEDIUM MediumArray, 00061 IN UINT MediumArraySize, 00062 IN NDIS_HANDLE MiniportAdapterContext, 00063 IN NDIS_HANDLE WrapperConfigurationContext 00064 ); 00065 00066 typedef 00067 VOID 00068 (*W_ISR_HANDLER)( 00069 OUT PBOOLEAN InterruptRecognized, 00070 OUT PBOOLEAN QueueMiniportHandleInterrupt, 00071 IN NDIS_HANDLE MiniportAdapterContext 00072 ); 00073 00074 typedef 00075 NDIS_STATUS 00076 (*W_QUERY_INFORMATION_HANDLER)( 00077 IN NDIS_HANDLE MiniportAdapterContext, 00078 IN NDIS_OID Oid, 00079 IN PVOID InformationBuffer, 00080 IN ULONG InformationBufferLength, 00081 OUT PULONG BytesWritten, 00082 OUT PULONG BytesNeeded 00083 ); 00084 00085 typedef 00086 NDIS_STATUS 00087 (*W_RECONFIGURE_HANDLER)( 00088 OUT PNDIS_STATUS OpenErrorStatus, 00089 IN NDIS_HANDLE MiniportAdapterContext OPTIONAL, 00090 IN NDIS_HANDLE WrapperConfigurationContext 00091 ); 00092 00093 typedef 00094 NDIS_STATUS 00095 (*W_RESET_HANDLER)( 00096 OUT PBOOLEAN AddressingReset, 00097 IN NDIS_HANDLE MiniportAdapterContext 00098 ); 00099 00100 typedef 00101 NDIS_STATUS 00102 (*W_SEND_HANDLER)( 00103 IN NDIS_HANDLE MiniportAdapterContext, 00104 IN PNDIS_PACKET Packet, 00105 IN UINT Flags 00106 ); 00107 00108 typedef 00109 NDIS_STATUS 00110 (*WM_SEND_HANDLER)( 00111 IN NDIS_HANDLE MiniportAdapterContext, 00112 IN NDIS_HANDLE NdisLinkHandle, 00113 IN PNDIS_WAN_PACKET Packet 00114 ); 00115 00116 typedef 00117 NDIS_STATUS 00118 (*W_SET_INFORMATION_HANDLER)( 00119 IN NDIS_HANDLE MiniportAdapterContext, 00120 IN NDIS_OID Oid, 00121 IN PVOID InformationBuffer, 00122 IN ULONG InformationBufferLength, 00123 OUT PULONG BytesRead, 00124 OUT PULONG BytesNeeded 00125 ); 00126 00127 typedef 00128 NDIS_STATUS 00129 (*W_TRANSFER_DATA_HANDLER)( 00130 OUT PNDIS_PACKET Packet, 00131 OUT PUINT BytesTransferred, 00132 IN NDIS_HANDLE MiniportAdapterContext, 00133 IN NDIS_HANDLE MiniportReceiveContext, 00134 IN UINT ByteOffset, 00135 IN UINT BytesToTransfer 00136 ); 00137 00138 typedef 00139 NDIS_STATUS 00140 (*WM_TRANSFER_DATA_HANDLER)( 00141 VOID 00142 ); 00143 00144 typedef struct _NDIS30_MINIPORT_CHARACTERISTICS 00145 { 00146 UCHAR MajorNdisVersion; 00147 UCHAR MinorNdisVersion; 00148 USHORT Filler; 00149 UINT Reserved; 00150 W_CHECK_FOR_HANG_HANDLER CheckForHangHandler; 00151 W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler; 00152 W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler; 00153 W_HALT_HANDLER HaltHandler; 00154 W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler; 00155 W_INITIALIZE_HANDLER InitializeHandler; 00156 W_ISR_HANDLER ISRHandler; 00157 W_QUERY_INFORMATION_HANDLER QueryInformationHandler; 00158 W_RECONFIGURE_HANDLER ReconfigureHandler; 00159 W_RESET_HANDLER ResetHandler; 00160 union 00161 { 00162 W_SEND_HANDLER SendHandler; 00163 WM_SEND_HANDLER WanSendHandler; 00164 }; 00165 W_SET_INFORMATION_HANDLER SetInformationHandler; 00166 union 00167 { 00168 W_TRANSFER_DATA_HANDLER TransferDataHandler; 00169 WM_TRANSFER_DATA_HANDLER WanTransferDataHandler; 00170 }; 00171 } NDIS30_MINIPORT_CHARACTERISTICS; 00172 00173 // 00174 // Miniport extensions for NDIS 4.0 00175 // 00176 typedef 00177 VOID 00178 (*W_RETURN_PACKET_HANDLER)( 00179 IN NDIS_HANDLE MiniportAdapterContext, 00180 IN PNDIS_PACKET Packet 00181 ); 00182 00183 // 00184 // NDIS 4.0 extension 00185 // 00186 typedef 00187 VOID 00188 (*W_SEND_PACKETS_HANDLER)( 00189 IN NDIS_HANDLE MiniportAdapterContext, 00190 IN PPNDIS_PACKET PacketArray, 00191 IN UINT NumberOfPackets 00192 ); 00193 00194 typedef 00195 VOID 00196 (*W_ALLOCATE_COMPLETE_HANDLER)( 00197 IN NDIS_HANDLE MiniportAdapterContext, 00198 IN PVOID VirtualAddress, 00199 IN PNDIS_PHYSICAL_ADDRESS PhysicalAddress, 00200 IN ULONG Length, 00201 IN PVOID Context 00202 ); 00203 00204 typedef struct _NDIS40_MINIPORT_CHARACTERISTICS 00205 { 00206 #ifdef __cplusplus 00207 NDIS30_MINIPORT_CHARACTERISTICS Ndis30Chars; 00208 #else 00209 NDIS30_MINIPORT_CHARACTERISTICS; 00210 #endif 00211 // 00212 // Extensions for NDIS 4.0 00213 // 00214 W_RETURN_PACKET_HANDLER ReturnPacketHandler; 00215 W_SEND_PACKETS_HANDLER SendPacketsHandler; 00216 W_ALLOCATE_COMPLETE_HANDLER AllocateCompleteHandler; 00217 00218 } NDIS40_MINIPORT_CHARACTERISTICS; 00219 00220 00221 // 00222 // Miniport extensions for NDIS 5.0 00223 // 00224 // 00225 // NDIS 5.0 extension - however available for miniports only 00226 // 00227 00228 // 00229 // W_CO_CREATE_VC_HANDLER is a synchronous call 00230 // 00231 typedef 00232 NDIS_STATUS 00233 (*W_CO_CREATE_VC_HANDLER)( 00234 IN NDIS_HANDLE MiniportAdapterContext, 00235 IN NDIS_HANDLE NdisVcHandle, 00236 OUT PNDIS_HANDLE MiniportVcContext 00237 ); 00238 00239 typedef 00240 NDIS_STATUS 00241 (*W_CO_DELETE_VC_HANDLER)( 00242 IN NDIS_HANDLE MiniportVcContext 00243 ); 00244 00245 typedef 00246 NDIS_STATUS 00247 (*W_CO_ACTIVATE_VC_HANDLER)( 00248 IN NDIS_HANDLE MiniportVcContext, 00249 IN OUT PCO_CALL_PARAMETERS CallParameters 00250 ); 00251 00252 typedef 00253 NDIS_STATUS 00254 (*W_CO_DEACTIVATE_VC_HANDLER)( 00255 IN NDIS_HANDLE MiniportVcContext 00256 ); 00257 00258 typedef 00259 VOID 00260 (*W_CO_SEND_PACKETS_HANDLER)( 00261 IN NDIS_HANDLE MiniportVcContext, 00262 IN PPNDIS_PACKET PacketArray, 00263 IN UINT NumberOfPackets 00264 ); 00265 00266 typedef 00267 NDIS_STATUS 00268 (*W_CO_REQUEST_HANDLER)( 00269 IN NDIS_HANDLE MiniportAdapterContext, 00270 IN NDIS_HANDLE MiniportVcContext OPTIONAL, 00271 IN OUT PNDIS_REQUEST NdisRequest 00272 ); 00273 00274 typedef struct _NDIS50_MINIPORT_CHARACTERISTICS 00275 { 00276 #ifdef __cplusplus 00277 NDIS40_MINIPORT_CHARACTERISTICS Ndis40Chars; 00278 #else 00279 NDIS40_MINIPORT_CHARACTERISTICS; 00280 #endif 00281 // 00282 // Extensions for NDIS 5.0 00283 // 00284 W_CO_CREATE_VC_HANDLER CoCreateVcHandler; 00285 W_CO_DELETE_VC_HANDLER CoDeleteVcHandler; 00286 W_CO_ACTIVATE_VC_HANDLER CoActivateVcHandler; 00287 W_CO_DEACTIVATE_VC_HANDLER CoDeactivateVcHandler; 00288 W_CO_SEND_PACKETS_HANDLER CoSendPacketsHandler; 00289 W_CO_REQUEST_HANDLER CoRequestHandler; 00290 } NDIS50_MINIPORT_CHARACTERISTICS; 00291 00292 #ifdef NDIS50_MINIPORT 00293 typedef struct _NDIS50_MINIPORT_CHARACTERISTICS NDIS_MINIPORT_CHARACTERISTICS; 00294 #else 00295 #ifdef NDIS40_MINIPORT 00296 typedef struct _NDIS40_MINIPORT_CHARACTERISTICS NDIS_MINIPORT_CHARACTERISTICS; 00297 #else 00298 typedef struct _NDIS30_MINIPORT_CHARACTERISTICS NDIS_MINIPORT_CHARACTERISTICS; 00299 #endif 00300 #endif 00301 typedef NDIS_MINIPORT_CHARACTERISTICS *PNDIS_MINIPORT_CHARACTERISTICS; 00302 typedef NDIS_MINIPORT_CHARACTERISTICS NDIS_WAN_MINIPORT_CHARACTERISTICS; 00303 typedef NDIS_WAN_MINIPORT_CHARACTERISTICS * PNDIS_MINIPORT_CHARACTERISTICS; 00304 00305 typedef struct _NDIS_MINIPORT_INTERRUPT 00306 { 00307 PKINTERRUPT InterruptObject; 00308 KSPIN_LOCK DpcCountLock; 00309 PVOID MiniportIdField; 00310 W_ISR_HANDLER MiniportIsr; 00311 W_HANDLE_INTERRUPT_HANDLER MiniportDpc; 00312 KDPC InterruptDpc; 00313 PNDIS_MINIPORT_BLOCK Miniport; 00314 00315 UCHAR DpcCount; 00316 BOOLEAN Filler1; 00317 00318 // 00319 // This is used to tell when all the Dpcs for the adapter are completed. 00320 // 00321 00322 KEVENT DpcsCompletedEvent; 00323 00324 BOOLEAN SharedInterrupt; 00325 BOOLEAN IsrRequested; 00326 00327 } NDIS_MINIPORT_INTERRUPT, *PNDIS_MINIPORT_INTERRUPT; 00328 00329 00330 typedef struct _NDIS_MINIPORT_TIMER 00331 { 00332 KTIMER Timer; 00333 KDPC Dpc; 00334 PNDIS_TIMER_FUNCTION MiniportTimerFunction; 00335 PVOID MiniportTimerContext; 00336 PNDIS_MINIPORT_BLOCK Miniport; 00337 struct _NDIS_MINIPORT_TIMER *NextTimer; 00338 } NDIS_MINIPORT_TIMER, *PNDIS_MINIPORT_TIMER; 00339 00340 typedef 00341 VOID 00342 (*FILTER_PACKET_INDICATION_HANDLER)( 00343 IN NDIS_HANDLE Miniport, 00344 IN PPNDIS_PACKET PacketArray, 00345 IN UINT NumberOfPackets 00346 ); 00347 00348 typedef 00349 VOID 00350 (*ETH_RCV_INDICATE_HANDLER)( 00351 IN PETH_FILTER Filter, 00352 IN NDIS_HANDLE MacReceiveContext, 00353 IN PCHAR Address, 00354 IN PVOID HeaderBuffer, 00355 IN UINT HeaderBufferSize, 00356 IN PVOID LookaheadBuffer, 00357 IN UINT LookaheadBufferSize, 00358 IN UINT PacketSize 00359 ); 00360 00361 typedef 00362 VOID 00363 (*ETH_RCV_COMPLETE_HANDLER)( 00364 IN PETH_FILTER Filter 00365 ); 00366 00367 typedef 00368 VOID 00369 (*FDDI_RCV_INDICATE_HANDLER)( 00370 IN PFDDI_FILTER Filter, 00371 IN NDIS_HANDLE MacReceiveContext, 00372 IN PCHAR Address, 00373 IN UINT AddressLength, 00374 IN PVOID HeaderBuffer, 00375 IN UINT HeaderBufferSize, 00376 IN PVOID LookaheadBuffer, 00377 IN UINT LookaheadBufferSize, 00378 IN UINT PacketSize 00379 ); 00380 00381 typedef 00382 VOID 00383 (*FDDI_RCV_COMPLETE_HANDLER)( 00384 IN PFDDI_FILTER Filter 00385 ); 00386 00387 typedef 00388 VOID 00389 (*TR_RCV_INDICATE_HANDLER)( 00390 IN PTR_FILTER Filter, 00391 IN NDIS_HANDLE MacReceiveContext, 00392 IN PVOID HeaderBuffer, 00393 IN UINT HeaderBufferSize, 00394 IN PVOID LookaheadBuffer, 00395 IN UINT LookaheadBufferSize, 00396 IN UINT PacketSize 00397 ); 00398 00399 typedef 00400 VOID 00401 (*TR_RCV_COMPLETE_HANDLER)( 00402 IN PTR_FILTER Filter 00403 ); 00404 00405 typedef 00406 VOID 00407 (*WAN_RCV_HANDLER)( 00408 OUT PNDIS_STATUS Status, 00409 IN NDIS_HANDLE MiniportAdapterHandle, 00410 IN NDIS_HANDLE NdisLinkContext, 00411 IN PUCHAR Packet, 00412 IN ULONG PacketSize 00413 ); 00414 00415 typedef 00416 VOID 00417 (*WAN_RCV_COMPLETE_HANDLER)( 00418 IN NDIS_HANDLE MiniportAdapterHandle, 00419 IN NDIS_HANDLE NdisLinkContext 00420 ); 00421 00422 typedef 00423 VOID 00424 (*NDIS_M_SEND_COMPLETE_HANDLER)( 00425 IN NDIS_HANDLE MiniportAdapterHandle, 00426 IN PNDIS_PACKET Packet, 00427 IN NDIS_STATUS Status 00428 ); 00429 00430 typedef 00431 VOID 00432 (*NDIS_WM_SEND_COMPLETE_HANDLER)( 00433 IN NDIS_HANDLE MiniportAdapterHandle, 00434 IN PVOID Packet, 00435 IN NDIS_STATUS Status 00436 ); 00437 00438 typedef 00439 VOID 00440 (*NDIS_M_TD_COMPLETE_HANDLER)( 00441 IN NDIS_HANDLE MiniportAdapterHandle, 00442 IN PNDIS_PACKET Packet, 00443 IN NDIS_STATUS Status, 00444 IN UINT BytesTransferred 00445 ); 00446 00447 typedef 00448 VOID 00449 (*NDIS_M_SEND_RESOURCES_HANDLER)( 00450 IN NDIS_HANDLE MiniportAdapterHandle 00451 ); 00452 00453 typedef 00454 VOID 00455 (*NDIS_M_STATUS_HANDLER)( 00456 IN NDIS_HANDLE MiniportHandle, 00457 IN NDIS_STATUS GeneralStatus, 00458 IN PVOID StatusBuffer, 00459 IN UINT StatusBufferSize 00460 ); 00461 00462 typedef 00463 VOID 00464 (*NDIS_M_STS_COMPLETE_HANDLER)( 00465 IN NDIS_HANDLE MiniportAdapterHandle 00466 ); 00467 00468 typedef 00469 VOID 00470 (*NDIS_M_REQ_COMPLETE_HANDLER)( 00471 IN NDIS_HANDLE MiniportAdapterHandle, 00472 IN NDIS_STATUS Status 00473 ); 00474 00475 typedef 00476 VOID 00477 (*NDIS_M_RESET_COMPLETE_HANDLER)( 00478 IN NDIS_HANDLE MiniportAdapterHandle, 00479 IN NDIS_STATUS Status, 00480 IN BOOLEAN AddressingReset 00481 ); 00482 00483 typedef 00484 VOID 00485 (FASTCALL *NDIS_M_PROCESS_DEFERRED)( 00486 IN PNDIS_MINIPORT_BLOCK Miniport 00487 ); 00488 00489 typedef 00490 BOOLEAN 00491 (FASTCALL *NDIS_M_START_SENDS)( 00492 IN PNDIS_MINIPORT_BLOCK Miniport 00493 ); 00494 00495 // 00496 // Defines the type of work item. 00497 // 00498 typedef enum _NDIS_WORK_ITEM_TYPE 00499 { 00500 NdisWorkItemRequest, 00501 NdisWorkItemSend, 00502 NdisWorkItemReturnPackets, 00503 NdisWorkItemResetRequested, 00504 NdisWorkItemResetInProgress, 00505 NdisWorkItemHalt, 00506 #if !(NDIS_NT) 00507 NdisWorkItemSendLoopback, 00508 #endif 00509 NdisWorkItemMiniportCallback, 00510 NdisMaxWorkItems 00511 } NDIS_WORK_ITEM_TYPE, *PNDIS_WORK_ITEM_TYPE; 00512 00513 00514 #define NUMBER_OF_WORK_ITEM_TYPES NdisMaxWorkItems 00515 #define NUMBER_OF_SINGLE_WORK_ITEMS 6 00516 00517 // 00518 // Work item structure 00519 // 00520 typedef struct _NDIS_MINIPORT_WORK_ITEM 00521 { 00522 // 00523 // Link for the list of work items of this type. 00524 // 00525 SINGLE_LIST_ENTRY Link; 00526 00527 // 00528 // type of work item and context information. 00529 // 00530 NDIS_WORK_ITEM_TYPE WorkItemType; 00531 PVOID WorkItemContext; 00532 } NDIS_MINIPORT_WORK_ITEM, *PNDIS_MINIPORT_WORK_ITEM; 00533 00534 typedef 00535 NDIS_STATUS 00536 (FASTCALL *NDIS_M_QUEUE_WORK_ITEM)( 00537 IN PNDIS_MINIPORT_BLOCK Miniport, 00538 IN NDIS_WORK_ITEM_TYPE WorkItemType, 00539 IN PVOID WorkItemContext 00540 ); 00541 00542 typedef 00543 NDIS_STATUS 00544 (FASTCALL *NDIS_M_QUEUE_NEW_WORK_ITEM)( 00545 IN PNDIS_MINIPORT_BLOCK Miniport, 00546 IN NDIS_WORK_ITEM_TYPE WorkItemType, 00547 IN PVOID WorkItemContext 00548 ); 00549 00550 typedef 00551 VOID 00552 (FASTCALL *NDIS_M_DEQUEUE_WORK_ITEM)( 00553 IN PNDIS_MINIPORT_BLOCK Miniport, 00554 IN NDIS_WORK_ITEM_TYPE WorkItemType, 00555 OUT PVOID * WorkItemContext 00556 ); 00557 00558 #if defined(NDIS_WRAPPER) 00559 00560 // 00561 // Structure used by the logging apis 00562 // 00563 typedef struct _NDIS_LOG 00564 { 00565 PNDIS_MINIPORT_BLOCK Miniport; // The owning miniport block 00566 KSPIN_LOCK LogLock; // For serialization 00567 PIRP Irp; // Pending Irp to consume this log 00568 UINT TotalSize; // Size of the log buffer 00569 UINT CurrentSize;// Size of the log buffer 00570 UINT InPtr; // IN part of the circular buffer 00571 UINT OutPtr; // OUT part of the circular buffer 00572 UCHAR LogBuf[1]; // The circular buffer 00573 } NDIS_LOG, *PNDIS_LOG; 00574 00575 // 00576 // Arcnet specific stuff 00577 // 00578 #define ARC_SEND_BUFFERS 8 00579 #define ARC_HEADER_SIZE 4 00580 00581 typedef struct _NDIS_ARC_BUF 00582 { 00583 NDIS_HANDLE ArcnetBufferPool; 00584 PUCHAR ArcnetLookaheadBuffer; 00585 UINT NumFree; 00586 ARC_BUFFER_LIST ArcnetBuffers[ARC_SEND_BUFFERS]; 00587 } NDIS_ARC_BUF, *PNDIS_ARC_BUF; 00588 00589 #endif 00590 00591 typedef struct _NDIS_BIND_PATHS 00592 { 00593 UINT Number; 00594 NDIS_STRING Paths[1]; 00595 } NDIS_BIND_PATHS, *PNDIS_BIND_PATHS; 00596 00597 // 00598 // Do not change the structure below !!! 00599 // 00600 typedef struct 00601 { 00602 union 00603 { 00604 PETH_FILTER EthDB; 00605 PNULL_FILTER NullDB; // Default Filter 00606 }; 00607 PTR_FILTER TrDB; 00608 PFDDI_FILTER FddiDB; 00609 PARC_FILTER ArcDB; 00610 } FILTERDBS, *PFILTERDBS; 00611 00612 // 00613 // one of these per mini-port registered on a Driver 00614 // 00615 struct _NDIS_MINIPORT_BLOCK 00616 { 00617 ULONG NullValue; // used to distinquish between MACs and mini-ports 00618 PNDIS_MINIPORT_BLOCK NextMiniport; // used by driver's MiniportQueue 00619 PNDIS_M_DRIVER_BLOCK DriverHandle; // pointer to our Driver block 00620 NDIS_HANDLE MiniportAdapterContext; // context when calling mini-port functions 00621 UNICODE_STRING MiniportName; // how mini-port refers to us 00622 PNDIS_BIND_PATHS BindPaths; 00623 NDIS_HANDLE OpenQueue; // queue of opens for this mini-port 00624 REFERENCE Ref; // contains spinlock for OpenQueue 00625 00626 NDIS_HANDLE DeviceContext; // Context associated with the intermediate driver 00627 00628 UCHAR Padding1; // DO NOT REMOVE OR NDIS WILL BREAK!!! 00629 00630 // 00631 // Synchronization stuff. 00632 // 00633 // The boolean is used to lock out several DPCs from running at the same time. 00634 // 00635 UCHAR LockAcquired; // EXPOSED via macros. Do not move 00636 00637 UCHAR PmodeOpens; // Count of opens which turned on pmode/all_local 00638 00639 // 00640 // This is the processor number that the miniport's 00641 // interrupt DPC and timers are running on. 00642 // 00643 UCHAR AssignedProcessor; 00644 00645 KSPIN_LOCK Lock; 00646 00647 PNDIS_REQUEST MediaRequest; 00648 00649 PNDIS_MINIPORT_INTERRUPT Interrupt; 00650 00651 ULONG Flags; // Flags to keep track of the 00652 // miniport's state. 00653 ULONG PnPFlags; 00654 00655 // 00656 // Send information 00657 // 00658 LIST_ENTRY PacketList; 00659 PNDIS_PACKET FirstPendingPacket; // This is head of the queue of packets 00660 // waiting to be sent to miniport. 00661 PNDIS_PACKET ReturnPacketsQueue; 00662 00663 // 00664 // Space used for temp. use during request processing 00665 // 00666 ULONG RequestBuffer; 00667 PVOID SetMCastBuffer; 00668 00669 PNDIS_MINIPORT_BLOCK PrimaryMiniport; 00670 PVOID WrapperContext; 00671 00672 // 00673 // context to pass to bus driver when reading or writing config space 00674 // 00675 PVOID BusDataContext; 00676 // 00677 // flag to specify PnP capabilities of the device. we need this to fail query_stop 00678 // query_remove or suspend request if the device can not handle it 00679 // 00680 ULONG PnPCapabilities; 00681 00682 // 00683 // Resource information 00684 // 00685 PCM_RESOURCE_LIST Resources; 00686 00687 // 00688 // Watch-dog timer 00689 // 00690 NDIS_TIMER WakeUpDpcTimer; 00691 00692 // 00693 // Needed for PnP. Upcased version. The buffer is allocated as part of the 00694 // NDIS_MINIPORT_BLOCK itself. 00695 // 00696 // Note: 00697 // the following two fields should be explicitly UNICODE_STRING because 00698 // under Win9x the NDIS_STRING is an ANSI_STRING 00699 // 00700 UNICODE_STRING BaseName; 00701 UNICODE_STRING SymbolicLinkName; 00702 00703 // 00704 // Check for hang stuff 00705 // 00706 ULONG CheckForHangSeconds; 00707 USHORT CFHangTicks; 00708 USHORT CFHangCurrentTick; 00709 00710 // 00711 // Reset information 00712 // 00713 NDIS_STATUS ResetStatus; 00714 NDIS_HANDLE ResetOpen; 00715 00716 // 00717 // Holds media specific information. 00718 // 00719 #ifdef __cplusplus 00720 FILTERDBS FilterDbs; // EXPOSED via macros. Do not move 00721 #else 00722 FILTERDBS; // EXPOSED via macros. Do not move 00723 #endif 00724 00725 FILTER_PACKET_INDICATION_HANDLER PacketIndicateHandler; 00726 NDIS_M_SEND_COMPLETE_HANDLER SendCompleteHandler; 00727 NDIS_M_SEND_RESOURCES_HANDLER SendResourcesHandler; 00728 NDIS_M_RESET_COMPLETE_HANDLER ResetCompleteHandler; 00729 00730 NDIS_MEDIUM MediaType; 00731 00732 // 00733 // contains mini-port information 00734 // 00735 ULONG BusNumber; 00736 NDIS_INTERFACE_TYPE BusType; 00737 NDIS_INTERFACE_TYPE AdapterType; 00738 00739 PDEVICE_OBJECT DeviceObject; 00740 PDEVICE_OBJECT PhysicalDeviceObject; 00741 PDEVICE_OBJECT NextDeviceObject; 00742 00743 // 00744 // Holds the map registers for this mini-port. 00745 // 00746 PMAP_REGISTER_ENTRY MapRegisters; // EXPOSED via macros. Do not move 00747 00748 // 00749 // List of registered address families. Valid for the call-manager, Null for the client 00750 // 00751 PNDIS_AF_LIST CallMgrAfList; 00752 00753 PVOID MiniportThread; 00754 PVOID SetInfoBuf; 00755 USHORT SetInfoBufLen; 00756 USHORT MaxSendPackets; 00757 00758 // 00759 // Status code that is returned from the fake handlers. 00760 // 00761 NDIS_STATUS FakeStatus; 00762 00763 PVOID LockHandler; // For the filter lock 00764 00765 // 00766 // the following field should be explicitly UNICODE_STRING because 00767 // under Win9x the NDIS_STRING is an ANSI_STRING 00768 // 00769 PUNICODE_STRING pAdapterInstanceName; // Instance specific name for the adapter. 00770 00771 PADAPTER_OBJECT SystemAdapterObject; 00772 00773 UINT MacOptions; 00774 00775 // 00776 // RequestInformation 00777 // 00778 PNDIS_REQUEST PendingRequest; 00779 UINT MaximumLongAddresses; 00780 UINT MaximumShortAddresses; 00781 UINT CurrentLookahead; 00782 UINT MaximumLookahead; 00783 00784 // 00785 // For efficiency 00786 // 00787 W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler; 00788 W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler; 00789 W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler; 00790 W_SEND_PACKETS_HANDLER SendPacketsHandler; 00791 NDIS_M_START_SENDS DeferredSendHandler; 00792 00793 // 00794 // The following cannot be unionized. 00795 // 00796 ETH_RCV_INDICATE_HANDLER EthRxIndicateHandler; // EXPOSED via macros. Do not move 00797 TR_RCV_INDICATE_HANDLER TrRxIndicateHandler; // EXPOSED via macros. Do not move 00798 FDDI_RCV_INDICATE_HANDLER FddiRxIndicateHandler; // EXPOSED via macros. Do not move 00799 00800 ETH_RCV_COMPLETE_HANDLER EthRxCompleteHandler; // EXPOSED via macros. Do not move 00801 TR_RCV_COMPLETE_HANDLER TrRxCompleteHandler; // EXPOSED via macros. Do not move 00802 FDDI_RCV_COMPLETE_HANDLER FddiRxCompleteHandler; // EXPOSED via macros. Do not move 00803 00804 NDIS_M_STATUS_HANDLER StatusHandler; // EXPOSED via macros. Do not move 00805 NDIS_M_STS_COMPLETE_HANDLER StatusCompleteHandler; // EXPOSED via macros. Do not move 00806 NDIS_M_TD_COMPLETE_HANDLER TDCompleteHandler; // EXPOSED via macros. Do not move 00807 NDIS_M_REQ_COMPLETE_HANDLER QueryCompleteHandler; // EXPOSED via macros. Do not move 00808 NDIS_M_REQ_COMPLETE_HANDLER SetCompleteHandler; // EXPOSED via macros. Do not move 00809 00810 NDIS_WM_SEND_COMPLETE_HANDLER WanSendCompleteHandler;// EXPOSED via macros. Do not move 00811 WAN_RCV_HANDLER WanRcvHandler; // EXPOSED via macros. Do not move 00812 WAN_RCV_COMPLETE_HANDLER WanRcvCompleteHandler; // EXPOSED via macros. Do not move 00813 00814 /********************************************************************************************/ 00815 /**************** **********/ 00816 /**************** STUFF ABOVE IS POTENTIALLY ACCESSED BY MACROS. ADD STUFF BELOW **********/ 00817 /**************** SEVERE POSSIBILITY OF BREAKING SOMETHING IF STUFF ABOVE IS MOVED **********/ 00818 /**************** **********/ 00819 /********************************************************************************************/ 00820 #if defined(NDIS_WRAPPER) 00821 00822 // 00823 // Work that the miniport needs to do. 00824 // 00825 SINGLE_LIST_ENTRY WorkQueue[NUMBER_OF_WORK_ITEM_TYPES]; 00826 SINGLE_LIST_ENTRY SingleWorkItems[NUMBER_OF_SINGLE_WORK_ITEMS]; 00827 00828 PNDIS_MAC_BLOCK FakeMac; 00829 00830 UCHAR SendFlags; 00831 UCHAR TrResetRing; 00832 UCHAR ArcnetAddress; 00833 00834 union 00835 { 00836 PNDIS_ARC_BUF ArcBuf; 00837 // 00838 // the following fiels has a different use under NT and Memphis 00839 // 00840 #if NDIS_NT 00841 PVOID BusInterface; 00842 #else 00843 PVOID PhysicalAddressArray; 00844 #endif 00845 }; 00846 00847 // 00848 // Temp stuff for using the old NDIS functions 00849 // 00850 ULONG ChannelNumber; 00851 00852 PNDIS_LOG Log; 00853 00854 // 00855 // Store information here to track adapters 00856 // 00857 ULONG BusId; 00858 ULONG SlotNumber; 00859 00860 PCM_RESOURCE_LIST AllocatedResources; 00861 PCM_RESOURCE_LIST AllocatedResourcesTranslated; 00862 00863 // 00864 // Contains a list of the packet patterns that have been added to the 00865 // adapter. 00866 // 00867 SINGLE_LIST_ENTRY PatternList; 00868 00869 // 00870 // The driver's power management capabilities. 00871 // 00872 NDIS_PNP_CAPABILITIES PMCapabilities; 00873 00874 // 00875 // DeviceCapabilites as received from bus driver 00876 // 00877 DEVICE_CAPABILITIES DeviceCaps; 00878 00879 // 00880 // Contains the wake-up events that are enabled for the miniport. 00881 // 00882 ULONG WakeUpEnable; 00883 00884 // 00885 // The current device state that the adapter is in. 00886 // 00887 DEVICE_POWER_STATE CurrentDeviceState; 00888 00889 // 00890 // The following IRP is created in response to a cable disconnect 00891 // from the device. We keep a pointer around in case we need to cancel 00892 // it. 00893 // 00894 PIRP pIrpWaitWake; 00895 00896 SYSTEM_POWER_STATE WaitWakeSystemState; 00897 00898 // 00899 // The following is a pointer to a dynamically allocated array 00900 // of GUID structs. This is used to map GUIDs to OIDs 00901 // for custom GUIDs provided by the miniport. 00902 // 00903 00904 LARGE_INTEGER VcIndex; // Index used to identify a VC. 00905 KSPIN_LOCK VcCountLock; // Lock used to protect VC instance count. 00906 LIST_ENTRY WmiEnabledVcs; // List of WMI enabled VCs 00907 PNDIS_GUID pNdisGuidMap; // This is a list of all the GUIDs 00908 // and OIDs supported including any 00909 // customg GUIDs. 00910 PNDIS_GUID pCustomGuidMap; // This is a pointer into 00911 // the pGuidToOidMap to the 00912 // first custom GUID. 00913 USHORT VcCount; // Number of VC's that have instance names. 00914 00915 USHORT cNdisGuidMap; // This is the number of std. GUIDs 00916 USHORT cCustomGuidMap; // This is the number of custom GUIDs 00917 00918 // 00919 // These two are used temporarily while allocating the map registers. 00920 // 00921 USHORT CurrentMapRegister; 00922 PKEVENT AllocationEvent; 00923 00924 USHORT PhysicalMapRegistersNeeded; 00925 USHORT SGMapRegistersNeeded; 00926 ULONG MaximumPhysicalMapping; 00927 00928 // 00929 // This timer is used for media disconnect timouts. 00930 // 00931 NDIS_TIMER MediaDisconnectTimer; 00932 00933 // 00934 // The timeout value for media disconnect timer to fire 00935 // default is 20 seconds 00936 // 00937 USHORT MediaDisconnectTimeOut; 00938 00939 // 00940 // Used for WMI support 00941 // 00942 USHORT InstanceNumber; 00943 00944 // 00945 // this event will be set at the end of adapter initialization 00946 // 00947 NDIS_EVENT OpenReadyEvent; 00948 00949 // 00950 // current PnP state of the device, ex. started, stopped, query_removed, etc. 00951 // 00952 NDIS_PNP_DEVICE_STATE PnPDeviceState; 00953 00954 // 00955 // previous device state. to be used when we get a cancel_remove or a cancel_stop 00956 // 00957 NDIS_PNP_DEVICE_STATE OldPnPDeviceState; 00958 00959 // 00960 // Handlers to Write/Read Bus data 00961 // 00962 PGET_SET_DEVICE_DATA SetBusData; 00963 PGET_SET_DEVICE_DATA GetBusData; 00964 00965 POID_LIST OidList; 00966 00967 KDPC DeferredDpc; 00968 00969 // 00970 // Some NDIS gathered stats 00971 // 00972 NDIS_STATS NdisStats; 00973 00974 // 00975 // Valid during Packet Indication 00976 // 00977 PNDIS_PACKET IndicatedPacket[MAXIMUM_PROCESSORS]; 00978 00979 // 00980 // this event is for protecting against returning from REMOVE IRP 00981 // too early and while we still have pending workitems 00982 // 00983 PKEVENT RemoveReadyEvent; 00984 00985 // 00986 // this event gets signaled when all opens on the miniport are closed 00987 // 00988 PKEVENT AllOpensClosedEvent; 00989 00990 // 00991 // this event gets signaled when all requests on the miniport are gone 00992 // 00993 PKEVENT AllRequestsCompletedEvent; 00994 00995 // 00996 // Init time for the miniport in milliseconds 00997 // 00998 ULONG InitTimeMs; 00999 01000 NDIS_MINIPORT_WORK_ITEM WorkItemBuffer[NUMBER_OF_SINGLE_WORK_ITEMS]; 01001 PNDIS_MINIPORT_TIMER TimerQueue; 01002 01003 // 01004 // flags to fail certain NDIS APIs to make sure the driver does the right things 01005 // 01006 ULONG DriverVerifyFlags; 01007 01008 // 01009 // used to queue miniport on global miniport queue 01010 // 01011 PNDIS_MINIPORT_BLOCK NextGlobalMiniport; 01012 01013 // 01014 // InternalResetCount: The # of times NDIS decided a miniport was hung 01015 // MiniportResetCount The # of times miniport decided it was hung 01016 // 01017 USHORT InternalResetCount; 01018 USHORT MiniportResetCount; 01019 01020 USHORT MediaSenseConnectCount; 01021 USHORT MediaSenseDisconnectCount; 01022 01023 PNDIS_PACKET * xPackets; 01024 01025 // 01026 // track the user mode requests 01027 // 01028 ULONG UserModeOpenReferences; 01029 01030 #if LOCK_DBG 01031 ULONG LockDbg; 01032 ULONG LockDbgX; 01033 PVOID LockThread; 01034 #endif 01035 01036 #if !(NDIS_NT) 01037 PNDIS_PACKET LoopbackHead; 01038 PNDIS_PACKET LoopbackTail; 01039 #endif 01040 01041 #endif // NDIS_WRAPPER defined 01042 }; 01043 01044 // 01045 // Routines for intermediate miniport drivers. 01046 // 01047 typedef 01048 VOID 01049 (*W_MINIPORT_CALLBACK)( 01050 IN NDIS_HANDLE MiniportAdapterContext, 01051 IN PVOID CallbackContext 01052 ); 01053 01054 // 01055 // These are now obsolete. Use Deserialized driver model for optimal performance. 01056 // 01057 EXPORT 01058 NDIS_STATUS 01059 NdisIMQueueMiniportCallback( 01060 IN NDIS_HANDLE MiniportAdapterHandle, 01061 IN W_MINIPORT_CALLBACK CallbackRoutine, 01062 IN PVOID CallbackContext 01063 ); 01064 01065 EXPORT 01066 BOOLEAN 01067 NdisIMSwitchToMiniport( 01068 IN NDIS_HANDLE MiniportAdapterHandle, 01069 OUT PNDIS_HANDLE SwitchHandle 01070 ); 01071 01072 EXPORT 01073 VOID 01074 NdisIMRevertBack( 01075 IN NDIS_HANDLE MiniportAdapterHandle, 01076 IN NDIS_HANDLE SwitchHandle 01077 ); 01078 01079 EXPORT 01080 NDIS_STATUS 01081 NdisIMRegisterLayeredMiniport( 01082 IN NDIS_HANDLE NdisWrapperHandle, 01083 IN PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, 01084 IN UINT CharacteristicsLength, 01085 OUT PNDIS_HANDLE DriverHandle 01086 ); 01087 01088 EXPORT 01089 VOID 01090 NdisIMDeregisterLayeredMiniport( 01091 IN NDIS_HANDLE DriverHandle 01092 ); 01093 01094 EXPORT 01095 VOID 01096 NdisIMAssociateMiniport( 01097 IN NDIS_HANDLE DriverHandle, 01098 IN NDIS_HANDLE ProtocolHandle 01099 ); 01100 01101 EXPORT 01102 NDIS_STATUS 01103 NdisMRegisterDevice( 01104 IN NDIS_HANDLE NdisWrapperHandle, 01105 IN PNDIS_STRING DeviceName, 01106 IN PNDIS_STRING SymbolicName, 01107 IN PDRIVER_DISPATCH MajorFunctions[], 01108 OUT PDEVICE_OBJECT * pDeviceObject, 01109 OUT NDIS_HANDLE * NdisDeviceHandle 01110 ); 01111 01112 EXPORT 01113 NDIS_STATUS 01114 NdisMDeregisterDevice( 01115 IN NDIS_HANDLE NdisDeviceHandle 01116 ); 01117 01118 EXPORT 01119 VOID 01120 NdisMRegisterUnloadHandler( 01121 IN NDIS_HANDLE NdisWrapperHandle, 01122 IN PDRIVER_UNLOAD UnloadHandler 01123 ); 01124 01125 // 01126 // Operating System Requests 01127 // 01128 typedef UCHAR NDIS_DMA_SIZE; 01129 01130 #define NDIS_DMA_24BITS ((NDIS_DMA_SIZE)0) 01131 #define NDIS_DMA_32BITS ((NDIS_DMA_SIZE)1) 01132 #define NDIS_DMA_64BITS ((NDIS_DMA_SIZE)2) 01133 01134 EXPORT 01135 NDIS_STATUS 01136 NdisMAllocateMapRegisters( 01137 IN NDIS_HANDLE MiniportAdapterHandle, 01138 IN UINT DmaChannel, 01139 IN NDIS_DMA_SIZE DmaSize, 01140 IN ULONG PhysicalMapRegistersNeeded, 01141 IN ULONG MaximumPhysicalMapping 01142 ); 01143 01144 EXPORT 01145 VOID 01146 NdisMFreeMapRegisters( 01147 IN NDIS_HANDLE MiniportAdapterHandle 01148 ); 01149 01150 EXPORT 01151 NDIS_STATUS 01152 NdisMInitializeScatterGatherDma( 01153 IN NDIS_HANDLE MiniportAdapterHandle, 01154 IN BOOLEAN Dma64BitAddresses, 01155 IN ULONG MaximumPhysicalMapping 01156 ); 01157 01158 EXPORT 01159 NDIS_STATUS 01160 NdisMRegisterIoPortRange( 01161 OUT PVOID * PortOffset, 01162 IN NDIS_HANDLE MiniportAdapterHandle, 01163 IN UINT InitialPort, 01164 IN UINT NumberOfPorts 01165 ); 01166 01167 EXPORT 01168 VOID 01169 NdisMDeregisterIoPortRange( 01170 IN NDIS_HANDLE MiniportAdapterHandle, 01171 IN UINT InitialPort, 01172 IN UINT NumberOfPorts, 01173 IN PVOID PortOffset 01174 ); 01175 01176 EXPORT 01177 NDIS_STATUS 01178 NdisMMapIoSpace( 01179 OUT PVOID * VirtualAddress, 01180 IN NDIS_HANDLE MiniportAdapterHandle, 01181 IN NDIS_PHYSICAL_ADDRESS PhysicalAddress, 01182 IN UINT Length 01183 ); 01184 01185 EXPORT 01186 VOID 01187 NdisMUnmapIoSpace( 01188 IN NDIS_HANDLE MiniportAdapterHandle, 01189 IN PVOID VirtualAddress, 01190 IN UINT Length 01191 ); 01192 01193 EXPORT 01194 NDIS_STATUS 01195 NdisMRegisterInterrupt( 01196 OUT PNDIS_MINIPORT_INTERRUPT Interrupt, 01197 IN NDIS_HANDLE MiniportAdapterHandle, 01198 IN UINT InterruptVector, 01199 IN UINT InterruptLevel, 01200 IN BOOLEAN RequestIsr, 01201 IN BOOLEAN SharedInterrupt, 01202 IN NDIS_INTERRUPT_MODE InterruptMode 01203 ); 01204 01205 EXPORT 01206 VOID 01207 NdisMDeregisterInterrupt( 01208 IN PNDIS_MINIPORT_INTERRUPT Interrupt 01209 ); 01210 01211 EXPORT 01212 BOOLEAN 01213 NdisMSynchronizeWithInterrupt( 01214 IN PNDIS_MINIPORT_INTERRUPT Interrupt, 01215 IN PVOID SynchronizeFunction, 01216 IN PVOID SynchronizeContext 01217 ); 01218 01219 01220 EXPORT 01221 VOID 01222 NdisMQueryAdapterResources( 01223 OUT PNDIS_STATUS Status, 01224 IN NDIS_HANDLE WrapperConfigurationContext, 01225 OUT PNDIS_RESOURCE_LIST ResourceList, 01226 IN OUT PUINT BufferSize 01227 ); 01228 01229 // 01230 // Timers 01231 // 01232 // VOID 01233 // NdisMSetTimer( 01234 // IN PNDIS_MINIPORT_TIMER Timer, 01235 // IN UINT MillisecondsToDelay 01236 // ); 01237 #define NdisMSetTimer(_Timer, _Delay) NdisSetTimer((PNDIS_TIMER)_Timer, _Delay) 01238 01239 VOID 01240 NdisMSetPeriodicTimer( 01241 IN PNDIS_MINIPORT_TIMER Timer, 01242 IN UINT MillisecondPeriod 01243 ); 01244 01245 EXPORT 01246 VOID 01247 NdisMInitializeTimer( 01248 IN OUT PNDIS_MINIPORT_TIMER Timer, 01249 IN NDIS_HANDLE MiniportAdapterHandle, 01250 IN PNDIS_TIMER_FUNCTION TimerFunction, 01251 IN PVOID FunctionContext 01252 ); 01253 01254 EXPORT 01255 VOID 01256 NdisMCancelTimer( 01257 IN PNDIS_MINIPORT_TIMER Timer, 01258 OUT PBOOLEAN TimerCancelled 01259 ); 01260 01261 EXPORT 01262 VOID 01263 NdisMSleep( 01264 IN ULONG MicrosecondsToSleep 01265 ); 01266 01267 // 01268 // Physical Mapping 01269 // 01270 EXPORT 01271 VOID 01272 NdisMStartBufferPhysicalMapping( 01273 IN NDIS_HANDLE MiniportAdapterHandle, 01274 IN PNDIS_BUFFER Buffer, 01275 IN ULONG PhysicalMapRegister, 01276 IN BOOLEAN WriteToDevice, 01277 OUT PNDIS_PHYSICAL_ADDRESS_UNIT PhysicalAddressArray, 01278 OUT PUINT ArraySize 01279 ); 01280 01281 EXPORT 01282 VOID 01283 NdisMCompleteBufferPhysicalMapping( 01284 IN NDIS_HANDLE MiniportAdapterHandle, 01285 IN PNDIS_BUFFER Buffer, 01286 IN ULONG PhysicalMapRegister 01287 ); 01288 01289 01290 // 01291 // Shared memory 01292 // 01293 EXPORT 01294 VOID 01295 NdisMAllocateSharedMemory( 01296 IN NDIS_HANDLE MiniportAdapterHandle, 01297 IN ULONG Length, 01298 IN BOOLEAN Cached, 01299 OUT PVOID * VirtualAddress, 01300 OUT PNDIS_PHYSICAL_ADDRESS PhysicalAddress 01301 ); 01302 01303 EXPORT 01304 NDIS_STATUS 01305 NdisMAllocateSharedMemoryAsync( 01306 IN NDIS_HANDLE MiniportAdapterHandle, 01307 IN ULONG Length, 01308 IN BOOLEAN Cached, 01309 IN PVOID Context 01310 ); 01311 01312 /*++ 01313 VOID 01314 NdisMUpdateSharedMemory( 01315 IN NDIS_HANDLE MiniportAdapterHandle, 01316 IN ULONG Length, 01317 IN PVOID VirtualAddress, 01318 IN NDIS_PHYSICAL_ADDRESS PhysicalAddress 01319 ) 01320 --*/ 01321 #define NdisMUpdateSharedMemory(_H, _L, _V, _P) NdisUpdateSharedMemory(_H, _L, _V, _P) 01322 01323 01324 EXPORT 01325 VOID 01326 NdisMFreeSharedMemory( 01327 IN NDIS_HANDLE MiniportAdapterHandle, 01328 IN ULONG Length, 01329 IN BOOLEAN Cached, 01330 IN PVOID VirtualAddress, 01331 IN NDIS_PHYSICAL_ADDRESS PhysicalAddress 01332 ); 01333 01334 01335 // 01336 // DMA operations. 01337 // 01338 EXPORT 01339 NDIS_STATUS 01340 NdisMRegisterDmaChannel( 01341 OUT PNDIS_HANDLE MiniportDmaHandle, 01342 IN NDIS_HANDLE MiniportAdapterHandle, 01343 IN UINT DmaChannel, 01344 IN BOOLEAN Dma32BitAddresses, 01345 IN PNDIS_DMA_DESCRIPTION DmaDescription, 01346 IN ULONG MaximumLength 01347 ); 01348 01349 01350 EXPORT 01351 VOID 01352 NdisMDeregisterDmaChannel( 01353 IN NDIS_HANDLE MiniportDmaHandle 01354 ); 01355 01356 /*++ 01357 VOID 01358 NdisMSetupDmaTransfer( 01359 OUT PNDIS_STATUS Status, 01360 IN NDIS_HANDLE MiniportDmaHandle, 01361 IN PNDIS_BUFFER Buffer, 01362 IN ULONG Offset, 01363 IN ULONG Length, 01364 IN BOOLEAN WriteToDevice 01365 ) 01366 --*/ 01367 #define NdisMSetupDmaTransfer(_S, _H, _B, _O, _L, _M_) \ 01368 NdisSetupDmaTransfer(_S, _H, _B, _O, _L, _M_) 01369 01370 /*++ 01371 VOID 01372 NdisMCompleteDmaTransfer( 01373 OUT PNDIS_STATUS Status, 01374 IN NDIS_HANDLE MiniportDmaHandle, 01375 IN PNDIS_BUFFER Buffer, 01376 IN ULONG Offset, 01377 IN ULONG Length, 01378 IN BOOLEAN WriteToDevice 01379 ) 01380 --*/ 01381 #define NdisMCompleteDmaTransfer(_S, _H, _B, _O, _L, _M_) \ 01382 NdisCompleteDmaTransfer(_S, _H, _B, _O, _L, _M_) 01383 01384 EXPORT 01385 ULONG 01386 NdisMReadDmaCounter( 01387 IN NDIS_HANDLE MiniportDmaHandle 01388 ); 01389 01390 01391 // 01392 // Requests Used by Miniport Drivers 01393 // 01394 #define NdisMInitializeWrapper(_a,_b,_c,_d) NdisInitializeWrapper((_a),(_b),(_c),(_d)) 01395 01396 EXPORT 01397 NDIS_STATUS 01398 NdisMRegisterMiniport( 01399 IN NDIS_HANDLE NdisWrapperHandle, 01400 IN PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics, 01401 IN UINT CharacteristicsLength 01402 ); 01403 01404 // EXPORT 01405 // NDIS_STATUS 01406 // NdisIMInitializeDeviceInstance( 01407 // IN NDIS_HANDLE DriverHandle, 01408 // IN PNDIS_STRING DriverInstance 01409 // ); 01410 #define NdisIMInitializeDeviceInstance(_H_, _I_) \ 01411 NdisIMInitializeDeviceInstanceEx(_H_, _I_, NULL) 01412 01413 EXPORT 01414 NDIS_STATUS 01415 NdisIMInitializeDeviceInstanceEx( 01416 IN NDIS_HANDLE DriverHandle, 01417 IN PNDIS_STRING DriverInstance, 01418 IN NDIS_HANDLE DeviceContext OPTIONAL 01419 ); 01420 01421 EXPORT 01422 NDIS_STATUS 01423 NdisIMCancelInitializeDeviceInstance( 01424 IN NDIS_HANDLE DriverHandle, 01425 IN PNDIS_STRING DeviceInstance 01426 ); 01427 01428 EXPORT 01429 NDIS_HANDLE 01430 NdisIMGetDeviceContext( 01431 IN NDIS_HANDLE MiniportAdapterHandle 01432 ); 01433 01434 EXPORT 01435 NDIS_HANDLE 01436 NdisIMGetBindingContext( 01437 IN NDIS_HANDLE NdisBindingHandle 01438 ); 01439 01440 EXPORT 01441 NDIS_STATUS 01442 NdisIMDeInitializeDeviceInstance( 01443 IN NDIS_HANDLE NdisMiniportHandle 01444 ); 01445 01446 EXPORT 01447 VOID 01448 NdisIMCopySendPerPacketInfo( 01449 IN PNDIS_PACKET DstPacket, 01450 IN PNDIS_PACKET SrcPacket 01451 ); 01452 01453 EXPORT 01454 VOID 01455 NdisIMCopySendCompletePerPacketInfo( 01456 IN PNDIS_PACKET DstPacket, 01457 PNDIS_PACKET SrcPacket 01458 ); 01459 01460 // EXPORT 01461 // VOID 01462 // NdisMSetAttributes( 01463 // IN NDIS_HANDLE MiniportAdapterHandle, 01464 // IN NDIS_HANDLE MiniportAdapterContext, 01465 // IN BOOLEAN BusMaster, 01466 // IN NDIS_INTERFACE_TYPE AdapterType 01467 // ); 01468 #define NdisMSetAttributes(_H_, _C_, _M_, _T_) \ 01469 NdisMSetAttributesEx(_H_, \ 01470 _C_, \ 01471 0, \ 01472 (_M_) ? NDIS_ATTRIBUTE_BUS_MASTER : 0, \ 01473 _T_) \ 01474 01475 01476 EXPORT 01477 VOID 01478 NdisMSetAttributesEx( 01479 IN NDIS_HANDLE MiniportAdapterHandle, 01480 IN NDIS_HANDLE MiniportAdapterContext, 01481 IN UINT CheckForHangTimeInSeconds OPTIONAL, 01482 IN ULONG AttributeFlags, 01483 IN NDIS_INTERFACE_TYPE AdapterType OPTIONAL 01484 ); 01485 01486 #define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001 01487 #define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002 01488 #define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004 01489 #define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008 01490 #define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010 01491 #define NDIS_ATTRIBUTE_DESERIALIZE 0x00000020 01492 #define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 0x00000040 01493 01494 EXPORT 01495 NDIS_STATUS 01496 NdisMSetMiniportSecondary( 01497 IN NDIS_HANDLE MiniportHandle, 01498 IN NDIS_HANDLE PrimaryMiniportHandle 01499 ); 01500 01501 EXPORT 01502 NDIS_STATUS 01503 NdisMPromoteMiniport( 01504 IN NDIS_HANDLE MiniportHandle 01505 ); 01506 01507 EXPORT 01508 NDIS_STATUS 01509 NdisMRemoveMiniport( 01510 IN NDIS_HANDLE MiniportHandle 01511 ); 01512 01513 #define NdisMSendComplete(_M, _P, _S) (*((PNDIS_MINIPORT_BLOCK)(_M))->SendCompleteHandler)(_M, _P, _S) 01514 01515 #define NdisMSendResourcesAvailable(_M) (*((PNDIS_MINIPORT_BLOCK)(_M))->SendResourcesHandler)(_M) 01516 01517 #define NdisMResetComplete(_M, _S, _A) (*((PNDIS_MINIPORT_BLOCK)(_M))->ResetCompleteHandler)(_M, _S, _A) 01518 01519 #define NdisMTransferDataComplete(_M, _P, _S, _B) \ 01520 (*((PNDIS_MINIPORT_BLOCK)(_M))->TDCompleteHandler)(_M, _P, _S, _B) 01521 01522 /*++ 01523 01524 VOID 01525 NdisMWanSendComplete( 01526 IN NDIS_HANDLE MiniportAdapterHandle, 01527 IN PVOID Packet, 01528 IN NDIS_STATUS Status 01529 ); 01530 01531 --*/ 01532 01533 #define NdisMWanSendComplete(_M_, _P_, _S_) \ 01534 (*((PNDIS_MINIPORT_BLOCK)(_M_))->WanSendCompleteHandler)(_M_, _P_, _S_) 01535 01536 #define NdisMQueryInformationComplete(_M, _S) \ 01537 (*((PNDIS_MINIPORT_BLOCK)(_M))->QueryCompleteHandler)(_M, _S) 01538 01539 #define NdisMSetInformationComplete(_M, _S) \ 01540 (*((PNDIS_MINIPORT_BLOCK)(_M))->SetCompleteHandler)(_M, _S) 01541 01542 /*++ 01543 01544 VOID 01545 NdisMIndicateReceivePacket( 01546 IN NDIS_HANDLE MiniportAdapterHandle, 01547 IN PPNDIS_PACKET ReceivedPackets, 01548 IN UINT NumberOfPackets 01549 ); 01550 01551 --*/ 01552 #define NdisMIndicateReceivePacket(_H, _P, _N) \ 01553 { \ 01554 (*((PNDIS_MINIPORT_BLOCK)(_H))->PacketIndicateHandler)( \ 01555 _H, \ 01556 _P, \ 01557 _N); \ 01558 } 01559 01560 /*++ 01561 01562 VOID 01563 NdisMWanIndicateReceive( 01564 OUT PNDIS_STATUS Status, 01565 IN NDIS_HANDLE MiniportAdapterHandle, 01566 IN NDIS_HANDLE NdisLinkContext, 01567 IN PUCHAR Packet, 01568 IN ULONG PacketSize 01569 ); 01570 01571 --*/ 01572 01573 #define NdisMWanIndicateReceive(_S_, _M_, _C_, _P_, _Z_) \ 01574 (*((PNDIS_MINIPORT_BLOCK)(_M_))->WanRcvHandler)(_S_, _M_, _C_, _P_, _Z_) 01575 01576 /*++ 01577 01578 VOID 01579 NdisMWanIndicateReceiveComplete( 01580 IN NDIS_HANDLE MiniportAdapterHandle, 01581 IN NDIS_HANDLE NdisLinkContext 01582 ); 01583 01584 --*/ 01585 01586 #define NdisMWanIndicateReceiveComplete(_M_, _C_) \ 01587 (*((PNDIS_MINIPORT_BLOCK)(_M_))->WanRcvCompleteHandler)(_M_, _C_) 01588 01589 /*++ 01590 01591 VOID 01592 NdisMEthIndicateReceive( 01593 IN NDIS_HANDLE MiniportAdapterHandle, 01594 IN NDIS_HANDLE MiniportReceiveContext, 01595 IN PVOID HeaderBuffer, 01596 IN UINT HeaderBufferSize, 01597 IN PVOID LookaheadBuffer, 01598 IN UINT LookaheadBufferSize, 01599 IN UINT PacketSize 01600 ) 01601 01602 --*/ 01603 #define NdisMEthIndicateReceive( _H, _C, _B, _SZ, _L, _LSZ, _PSZ) \ 01604 { \ 01605 (*((PNDIS_MINIPORT_BLOCK)(_H))->EthRxIndicateHandler)( \ 01606 ((PNDIS_MINIPORT_BLOCK)(_H))->EthDB, \ 01607 _C, \ 01608 _B, \ 01609 _B, \ 01610 _SZ, \ 01611 _L, \ 01612 _LSZ, \ 01613 _PSZ \ 01614 ); \ 01615 } 01616 01617 /*++ 01618 01619 VOID 01620 NdisMTrIndicateReceive( 01621 IN NDIS_HANDLE MiniportAdapterHandle, 01622 IN NDIS_HANDLE MiniportReceiveContext, 01623 IN PVOID HeaderBuffer, 01624 IN UINT HeaderBufferSize, 01625 IN PVOID LookaheadBuffer, 01626 IN UINT LookaheadBufferSize, 01627 IN UINT PacketSize 01628 ) 01629 01630 --*/ 01631 #define NdisMTrIndicateReceive( _H, _C, _B, _SZ, _L, _LSZ, _PSZ) \ 01632 { \ 01633 (*((PNDIS_MINIPORT_BLOCK)(_H))->TrRxIndicateHandler)( \ 01634 ((PNDIS_MINIPORT_BLOCK)(_H))->TrDB, \ 01635 _C, \ 01636 _B, \ 01637 _SZ, \ 01638 _L, \ 01639 _LSZ, \ 01640 _PSZ \ 01641 ); \ 01642 } 01643 01644 /*++ 01645 01646 VOID 01647 NdisMFddiIndicateReceive( 01648 IN NDIS_HANDLE MiniportAdapterHandle, 01649 IN NDIS_HANDLE MiniportReceiveContext, 01650 IN PVOID HeaderBuffer, 01651 IN UINT HeaderBufferSize, 01652 IN PVOID LookaheadBuffer, 01653 IN UINT LookaheadBufferSize, 01654 IN UINT PacketSize 01655 ) 01656 01657 --*/ 01658 01659 #define NdisMFddiIndicateReceive( _H, _C, _B, _SZ, _L, _LSZ, _PSZ) \ 01660 { \ 01661 (*((PNDIS_MINIPORT_BLOCK)(_H))->FddiRxIndicateHandler)( \ 01662 ((PNDIS_MINIPORT_BLOCK)(_H))->FddiDB, \ 01663 _C, \ 01664 (PUCHAR)_B + 1, \ 01665 ((((PUCHAR)_B)[0] & 0x40) ? FDDI_LENGTH_OF_LONG_ADDRESS \ 01666 : FDDI_LENGTH_OF_SHORT_ADDRESS), \ 01667 _B, \ 01668 _SZ, \ 01669 _L, \ 01670 _LSZ, \ 01671 _PSZ \ 01672 ); \ 01673 } 01674 01675 /*++ 01676 01677 VOID 01678 NdisMArcIndicateReceive( 01679 IN NDIS_HANDLE MiniportHandle, 01680 IN PUCHAR pRawHeader, // Pointer to Arcnet frame header 01681 IN PUCHAR pData, // Pointer to data portion of Arcnet frame 01682 IN UINT Length // Data Length 01683 ) 01684 01685 --*/ 01686 #define NdisMArcIndicateReceive( _H, _HD, _D, _SZ) \ 01687 { \ 01688 ArcFilterDprIndicateReceive(((PNDIS_MINIPORT_BLOCK)(_H))->ArcDB, \ 01689 _HD, \ 01690 _D, \ 01691 _SZ \ 01692 ); \ 01693 } 01694 01695 01696 /*++ 01697 01698 VOID 01699 NdisMEthIndicateReceiveComplete( 01700 IN NDIS_HANDLE MiniportHandle 01701 ); 01702 01703 --*/ 01704 01705 #define NdisMEthIndicateReceiveComplete( _H ) \ 01706 { \ 01707 (*((PNDIS_MINIPORT_BLOCK)(_H))->EthRxCompleteHandler)( \ 01708 ((PNDIS_MINIPORT_BLOCK)_H)->EthDB); \ 01709 } 01710 01711 /*++ 01712 01713 VOID 01714 NdisMTrIndicateReceiveComplete( 01715 IN NDIS_HANDLE MiniportHandle 01716 ); 01717 01718 --*/ 01719 01720 #define NdisMTrIndicateReceiveComplete( _H ) \ 01721 { \ 01722 (*((PNDIS_MINIPORT_BLOCK)(_H))->TrRxCompleteHandler)( \ 01723 ((PNDIS_MINIPORT_BLOCK)_H)->TrDB); \ 01724 } 01725 01726 /*++ 01727 01728 VOID 01729 NdisMFddiIndicateReceiveComplete( 01730 IN NDIS_HANDLE MiniportHandle 01731 ); 01732 01733 --*/ 01734 01735 #define NdisMFddiIndicateReceiveComplete( _H ) \ 01736 { \ 01737 (*((PNDIS_MINIPORT_BLOCK)(_H))->FddiRxCompleteHandler)( \ 01738 ((PNDIS_MINIPORT_BLOCK)_H)->FddiDB); \ 01739 } 01740 01741 /*++ 01742 01743 VOID 01744 NdisMArcIndicateReceiveComplete( 01745 IN NDIS_HANDLE MiniportHandle 01746 ); 01747 01748 --*/ 01749 01750 #define NdisMArcIndicateReceiveComplete( _H ) \ 01751 { \ 01752 if (((PNDIS_MINIPORT_BLOCK)_H)->EthDB) \ 01753 { \ 01754 NdisMEthIndicateReceiveComplete(_H); \ 01755 } \ 01756 \ 01757 ArcFilterDprIndicateReceiveComplete(((PNDIS_MINIPORT_BLOCK)_H)->ArcDB); \ 01758 } 01759 01760 /*++ 01761 01762 EXPORT 01763 VOID 01764 NdisMIndicateStatus( 01765 IN NDIS_HANDLE MiniportHandle, 01766 IN NDIS_STATUS GeneralStatus, 01767 IN PVOID StatusBuffer, 01768 IN UINT StatusBufferSize 01769 ); 01770 --*/ 01771 01772 #define NdisMIndicateStatus(_M, _G, _SB, _BS) (*((PNDIS_MINIPORT_BLOCK)(_M))->StatusHandler)(_M, _G, _SB, _BS) 01773 01774 /*++ 01775 01776 EXPORT 01777 VOID 01778 NdisMIndicateStatusComplete( 01779 IN NDIS_HANDLE MiniportHandle 01780 ); 01781 01782 --*/ 01783 01784 #define NdisMIndicateStatusComplete(_M) (*((PNDIS_MINIPORT_BLOCK)(_M))->StatusCompleteHandler)(_M) 01785 01786 EXPORT 01787 VOID 01788 NdisMRegisterAdapterShutdownHandler( 01789 IN NDIS_HANDLE MiniportHandle, 01790 IN PVOID ShutdownContext, 01791 IN ADAPTER_SHUTDOWN_HANDLER ShutdownHandler 01792 ); 01793 01794 EXPORT 01795 VOID 01796 NdisMDeregisterAdapterShutdownHandler( 01797 IN NDIS_HANDLE MiniportHandle 01798 ); 01799 01800 EXPORT 01801 NDIS_STATUS 01802 NdisMPciAssignResources( 01803 IN NDIS_HANDLE MiniportHandle, 01804 IN ULONG SlotNumber, 01805 IN PNDIS_RESOURCE_LIST * AssignedResources 01806 ); 01807 01808 // 01809 // Logging support for miniports 01810 // 01811 01812 EXPORT 01813 NDIS_STATUS 01814 NdisMCreateLog( 01815 IN NDIS_HANDLE MiniportAdapterHandle, 01816 IN UINT Size, 01817 OUT PNDIS_HANDLE LogHandle 01818 ); 01819 01820 EXPORT 01821 VOID 01822 NdisMCloseLog( 01823 IN NDIS_HANDLE LogHandle 01824 ); 01825 01826 EXPORT 01827 NDIS_STATUS 01828 NdisMWriteLogData( 01829 IN NDIS_HANDLE LogHandle, 01830 IN PVOID LogBuffer, 01831 IN UINT LogBufferSize 01832 ); 01833 01834 EXPORT 01835 VOID 01836 NdisMFlushLog( 01837 IN NDIS_HANDLE LogHandle 01838 ); 01839 01840 EXPORT 01841 VOID 01842 NdisMGetDeviceProperty( 01843 IN NDIS_HANDLE MiniportAdapterHandle, 01844 IN OUT PDEVICE_OBJECT * PhysicalDeviceObject OPTIONAL, 01845 IN OUT PDEVICE_OBJECT * FunctionalDeviceObject OPTIONAL, 01846 IN OUT PDEVICE_OBJECT * NextDeviceObject OPTIONAL, 01847 IN OUT PCM_RESOURCE_LIST * AllocatedResources OPTIONAL, 01848 IN OUT PCM_RESOURCE_LIST * AllocatedResourcesTranslated OPTIONAL 01849 ); 01850 01851 // 01852 // Get a pointer to the adapter's localized instance name. 01853 // 01854 EXPORT 01855 NDIS_STATUS 01856 NdisMQueryAdapterInstanceName( 01857 OUT PNDIS_STRING pAdapterInstanceName, 01858 IN NDIS_HANDLE MiniportHandle 01859 ); 01860 01861 // 01862 // NDIS 5.0 extensions for miniports 01863 // 01864 01865 EXPORT 01866 VOID 01867 NdisMCoIndicateReceivePacket( 01868 IN NDIS_HANDLE NdisVcHandle, 01869 IN PPNDIS_PACKET PacketArray, 01870 IN UINT NumberOfPackets 01871 ); 01872 01873 EXPORT 01874 VOID 01875 NdisMCoIndicateStatus( 01876 IN NDIS_HANDLE MiniportAdapterHandle, 01877 IN NDIS_HANDLE NdisVcHandle OPTIONAL, 01878 IN NDIS_STATUS GeneralStatus, 01879 IN PVOID StatusBuffer OPTIONAL, 01880 IN ULONG StatusBufferSize 01881 ); 01882 01883 EXPORT 01884 VOID 01885 NdisMCoReceiveComplete( 01886 IN NDIS_HANDLE MiniportAdapterHandle 01887 ); 01888 01889 EXPORT 01890 VOID 01891 NdisMCoSendComplete( 01892 IN NDIS_STATUS Status, 01893 IN NDIS_HANDLE NdisVcHandle, 01894 IN PNDIS_PACKET Packet 01895 ); 01896 01897 EXPORT 01898 VOID 01899 NdisMCoActivateVcComplete( 01900 IN NDIS_STATUS Status, 01901 IN NDIS_HANDLE NdisVcHandle, 01902 IN PCO_CALL_PARAMETERS CallParameters 01903 ); 01904 01905 EXPORT 01906 VOID 01907 NdisMCoDeactivateVcComplete( 01908 IN NDIS_STATUS Status, 01909 IN NDIS_HANDLE NdisVcHandle 01910 ); 01911 01912 EXPORT 01913 VOID 01914 NdisMCoRequestComplete( 01915 IN NDIS_STATUS Status, 01916 IN NDIS_HANDLE MiniportAdapterHandle, 01917 IN PNDIS_REQUEST Request 01918 ); 01919 01920 EXPORT 01921 NDIS_STATUS 01922 NdisMCmRegisterAddressFamily( 01923 IN NDIS_HANDLE MiniportAdapterHandle, 01924 IN PCO_ADDRESS_FAMILY AddressFamily, 01925 IN PNDIS_CALL_MANAGER_CHARACTERISTICS CmCharacteristics, 01926 IN UINT SizeOfCmCharacteristics 01927 ); 01928 01929 EXPORT 01930 NDIS_STATUS 01931 NdisMCmCreateVc( 01932 IN NDIS_HANDLE MiniportAdapterHandle, 01933 IN NDIS_HANDLE NdisAfHandle, 01934 IN NDIS_HANDLE MiniportVcContext, 01935 OUT PNDIS_HANDLE NdisVcHandle 01936 ); 01937 01938 EXPORT 01939 NDIS_STATUS 01940 NdisMCmDeleteVc( 01941 IN NDIS_HANDLE NdisVcHandle 01942 ); 01943 01944 01945 EXPORT 01946 NDIS_STATUS 01947 NdisMCmActivateVc( 01948 IN NDIS_HANDLE NdisVcHandle, 01949 IN PCO_CALL_PARAMETERS CallParameters 01950 ); 01951 01952 EXPORT 01953 NDIS_STATUS 01954 NdisMCmDeactivateVc( 01955 IN NDIS_HANDLE NdisVcHandle 01956 ); 01957 01958 01959 EXPORT 01960 NDIS_STATUS 01961 NdisMCmRequest( 01962 IN NDIS_HANDLE NdisAfHandle, 01963 IN NDIS_HANDLE NdisVcHandle OPTIONAL, 01964 IN NDIS_HANDLE NdisPartyHandle OPTIONAL, 01965 IN OUT PNDIS_REQUEST NdisRequest 01966 ); 01967 01968 // EXPORT 01969 // VOID 01970 // NdisMCmRequestComplete( 01971 // IN NDIS_STATUS Status, 01972 // IN NDIS_HANDLE NdisAfHandle, 01973 // IN NDIS_HANDLE NdisVcHandle OPTIONAL, 01974 // IN NDIS_HANDLE NdisPartyHandle OPTIONAL, 01975 // IN PNDIS_REQUEST NdisRequest 01976 // ); 01977 #define NdisMCmRequestComplete(_S_, _AH_, _VH_, _PH_, _R_) \ 01978 NdisCoRequestComplete(_S_, _AH_, _VH_, _PH_, _R_) 01979 01980 // EXPORT 01981 // VOID 01982 // NdisMCmOpenAddressFamilyComplete( 01983 // IN NDIS_STATUS Status, 01984 // IN NDIS_HANDLE NdisAfHandle, 01985 // IN NDIS_HANDLE CallMgrAfContext 01986 // ); 01987 01988 #define NdisMCmOpenAddressFamilyComplete(_S_, _H_, _C_) \ 01989 NdisCmOpenAddressFamilyComplete(_S_, _H_, _C_) 01990 01991 01992 // EXPORT 01993 // VOID 01994 // NdisMCmCloseAddressFamilyComplete( 01995 // IN NDIS_STATUS Status, 01996 // IN NDIS_HANDLE NdisAfHandle 01997 // ); 01998 01999 #define NdisMCmCloseAddressFamilyComplete(_S_, _H_) \ 02000 NdisCmCloseAddressFamilyComplete(_S_, _H_) 02001 02002 02003 02004 // EXPORT 02005 // VOID 02006 // NdisMCmRegisterSapComplete( 02007 // IN NDIS_STATUS Status, 02008 // IN NDIS_HANDLE NdisSapHandle, 02009 // IN NDIS_HANDLE CallMgrSapContext 02010 // ); 02011 02012 #define NdisMCmRegisterSapComplete(_S_, _H_, _C_) \ 02013 NdisCmRegisterSapComplete(_S_, _H_, _C_) 02014 02015 02016 // EXPORT 02017 // VOID 02018 // NdisMCmDeregisterSapComplete( 02019 // IN NDIS_STATUS Status, 02020 // IN NDIS_HANDLE NdisSapHandle 02021 // ); 02022 02023 #define NdisMCmDeregisterSapComplete(_S_, _H_) \ 02024 NdisCmDeregisterSapComplete(_S_, _H_) 02025 02026 02027 // EXPORT 02028 // VOID 02029 // NdisMCmMakeCallComplete( 02030 // IN NDIS_STATUS Status, 02031 // IN NDIS_HANDLE NdisVcHandle, 02032 // IN NDIS_HANDLE NdisPartyHandle OPTIONAL, 02033 // IN NDIS_HANDLE CallMgrPartyContext OPTIONAL, 02034 // IN PCO_CALL_PARAMETERS CallParameters 02035 // ); 02036 02037 #define NdisMCmMakeCallComplete(_S_, _VH_, _PH_, _CC_, _CP_) \ 02038 NdisCmMakeCallComplete(_S_, _VH_, _PH_, _CC_, _CP_) 02039 02040 02041 // EXPORT 02042 // VOID 02043 // NdisMCmCloseCallComplete( 02044 // IN NDIS_STATUS Status, 02045 // IN NDIS_HANDLE NdisVcHandle, 02046 // IN NDIS_HANDLE NdisPartyHandle OPTIONAL 02047 // ); 02048 02049 #define NdisMCmCloseCallComplete(_S_, _VH_, _PH_) \ 02050 NdisCmCloseCallComplete(_S_, _VH_, _PH_) 02051 02052 02053 // EXPORT 02054 // VOID 02055 // NdisMCmAddPartyComplete( 02056 // IN NDIS_STATUS Status, 02057 // IN NDIS_HANDLE NdisPartyHandle, 02058 // IN NDIS_HANDLE CallMgrPartyContext OPTIONAL, 02059 // IN PCO_CALL_PARAMETERS CallParameters 02060 // ); 02061 02062 #define NdisMCmAddPartyComplete(_S_, _H_, _C_, _P_) \ 02063 NdisCmAddPartyComplete(_S_, _H_, _C_, _P_) 02064 02065 02066 // EXPORT 02067 // VOID 02068 // NdisMCmDropPartyComplete( 02069 // IN NDIS_STATUS Status, 02070 // IN NDIS_HANDLE NdisPartyHandle 02071 // ); 02072 02073 #define NdisMCmDropPartyComplete(_S_, _H_) \ 02074 NdisCmDropPartyComplete(_S_, _H_) 02075 02076 02077 // EXPORT 02078 // NDIS_STATUS 02079 // NdisMCmDispatchIncomingCall( 02080 // IN NDIS_HANDLE NdisSapHandle, 02081 // IN NDIS_HANDLE NdisVcHandle, 02082 // IN PCO_CALL_PARAMETERS CallParameters 02083 // ); 02084 02085 #define NdisMCmDispatchIncomingCall(_SH_, _VH_, _CP_) \ 02086 NdisCmDispatchIncomingCall(_SH_, _VH_, _CP_) 02087 02088 02089 // EXPORT 02090 // VOID 02091 // NdisMCmDispatchCallConnected( 02092 // IN NDIS_HANDLE NdisVcHandle 02093 // ); 02094 02095 #define NdisMCmDispatchCallConnected(_H_) \ 02096 NdisCmDispatchCallConnected(_H_) 02097 02098 02099 // EXPORT 02100 // NdisMCmModifyCallQoSComplete( 02101 // IN NDIS_STATUS Status, 02102 // IN NDIS_HANDLE NdisVcHandle, 02103 // IN PCO_CALL_PARAMETERS CallParameters 02104 // ); 02105 02106 #define NdisMCmModifyCallQoSComplete(_S_, _H_, _P_) \ 02107 NdisCmModifyCallQoSComplete(_S_, _H_, _P_) 02108 02109 02110 // EXPORT 02111 // VOID 02112 // VOID 02113 // NdisMCmDispatchIncomingCallQoSChange( 02114 // IN NDIS_HANDLE NdisVcHandle, 02115 // IN PCO_CALL_PARAMETERS CallParameters 02116 // ); 02117 02118 #define NdisMCmDispatchIncomingCallQoSChange(_H_, _P_) \ 02119 NdisCmDispatchIncomingCallQoSChange(_H_, _P_) 02120 02121 02122 // EXPORT 02123 // VOID 02124 // NdisMCmDispatchIncomingCloseCall( 02125 // IN NDIS_STATUS CloseStatus, 02126 // IN NDIS_HANDLE NdisVcHandle, 02127 // IN PVOID Buffer OPTIONAL, 02128 // IN UINT Size 02129 // ); 02130 02131 #define NdisMCmDispatchIncomingCloseCall(_S_, _H_, _B_, _Z_) \ 02132 NdisCmDispatchIncomingCloseCall(_S_, _H_, _B_, _Z_) 02133 02134 02135 // EXPORT 02136 // VOID 02137 // NdisMCmDispatchIncomingDropParty( 02138 // IN NDIS_STATUS DropStatus, 02139 // IN NDIS_HANDLE NdisPartyHandle, 02140 // IN PVOID Buffer OPTIONAL, 02141 // IN UINT Size 02142 // ); 02143 #define NdisMCmDispatchIncomingDropParty(_S_, _H_, _B_, _Z_) \ 02144 NdisCmDispatchIncomingDropParty(_S_, _H_, _B_, _Z_) 02145 02146 02147 02148 02149 

Generated on Sat May 15 19:40:54 2004 for test by doxygen 1.3.7