DevHelp PullParticular

This service pulls the specified packet from the selected request packet linked list. If the packet is not found, then an indicator is set on return.

C
 USHORT APIENTRY DevHelp_PullParticular( NPBYTE Queue,                                       PBYTE  ReqPktAddr ); 

Assembler
 MOV  SI,OFFSET DS:queue        ; Location of queue head (should match                                        PushRequest value) LES  BX,request_packet         ; Pointer to request packet. MOV  DL,DevHlp_PullParticular

CALL [Device_Help] 

C

 * Queue (NPBYTE): Location of queue head (should match PushRequest value).
 * ReqPktAddr (PBYTE): Pointer to request packet.

Assembler
 MOV  SI,OFFSET DS:queue        ; Location of queue head (should match                                        PushRequest value) LES  BX,request_packet         ; Pointer to request packet. 

C
Success Indicator: 0

Possible errors: None.

Assembler
 'C' Clear if successful.

'C' Set if the specified request is not found. 

Remarks
A physical device driver uses PushRequest and PullRequest to maintain a work queue for each of its devices. PullParticular is used to remove a specific request packet from the work queue, typically when a process has terminated before finishing its I/O. PullParticular can also be used to remove request packets that were allocated by AllocReqPacket from the request packet linked list.

C

 * 1) include "dhcalls.h"

USHORT APIENTRY DevHelp_PullParticular( NPBYTE Queue,                                       PBYTE  ReqPktAddr ); 