DevHelp PullParticular: Difference between revisions
Appearance
Created page with "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. ==Syntax== ===C=== <PRE..." |
No edit summary |
||
Line 1: | Line 1: | ||
{{DISPLAYTITLE: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. | 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. | ||
Latest revision as of 03:22, 23 May 2025
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.
Syntax
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]
Parameters
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.
Return Code
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.
Example Code
C
#include "dhcalls.h" USHORT APIENTRY DevHelp_PullParticular( NPBYTE Queue, PBYTE ReqPktAddr );